|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
14.03.2011, 14:18 | #1 | |
Lambda на .Net?
Продуман
Питер
Регистрация: 22.02.2007
Сообщений: 2,840
|
||
Просмотров: 4642
|
|
||||
X - это логический оператор? Покажи реальный пример с исходными данными и что должно получиться.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Цитата:
(pr-sum 10 20 30) 5940 ;10*20*30-(10+20+30) (pr-sum 1 2) -1 ;1*2-(1+2)
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Набор операций фиксирован? Т.е. всегда нужно вычитать из произведения элементов их сумму?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 14.03.2011 в 16:16. |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
HWD: набор операций - да, количество аргументов может быть разное - соответственно возможно разветвление - в #1, в третей строке if x - то есть если x='() - он же nil - то есть пустому списку, то есть нет дополнительных аргументов - никакого умножения не производится - вернет nil.
Gomer: мешает опыт работы с функциями (языками) где это возможно - слыхал про классику: (apply 'mapcar (cons 'list lst)) - вот попробуй "исполни" ее без "многоаргументного" mapcara.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 14.03.2011 в 16:20. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Дима_, конечно же я перегнул палку, на вкус и цвет товарищей нет... но однородные данные принято группировать в списки, из-за 3х символов вы готовы привязать себя к определенной версии автокада и даже операционной системе... купить ms vs и подписаться на лицензию от autodesk... это как-то не рационально вам не кажется?
|
|||
|
||||
Цитата:
что мешает написать lisp-функцию, в теле которой и проверить, является ли список пустым, а по результату - либо вернуть nil, либо выполнить арифметику? Я могу показать пример на .Net, но... Мне кажется, что подобного рода Lisp-функции писать на .Net - это изврат... имхо Offtop: И тут Gomer'а в очередной раз понесло: Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 14.03.2011 в 16:43. |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Скорее первое - функция из первого поста как раз и проверяет список только он ей передается не в виде списка а в виде последовательности аргументов, которые та-самая навеска, которая непонятно может-ли быть сделанна, превращает последовательность аргументов в список.
То Gomer - а кто сказал что в списке обязательно должны хранится однородные данные?
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
А что, в списке данной задачи юзеру разрешается передавать данные разных типов? Как складывать/умножать/вычитать строку с числом или логическим значением? Я так и не увидел необходимости дотнета для решения данной задачи. Проверил на nil, если это не nil/пустой список - выполнил арифметику (пара строк на лиспе).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Цитата:
Цитата:
то Gomer - смотри допустим у нас есть несколько списков одинаковой длинны и нам надо получить список сумм - это лекго делается с посмощью "многоаргументной функции" +: (mapcar '+ lst1 lst2 lst3 ...) тоже самое с произведениями: (mapcar '* lst1 lst2 lst3...) но допустим мы хотим получить что-то посложней, на что нет встроенной многоаргументной функции с учетом что количество списков может быть любым, например сумму квадратных корней - если бы синтаксис позволял создавать "многоаргументную" лямбду то функция выглядела бы так (синтаксис из 1 примера): (mapcar '(net-lambda ( . x) (apply '+ (mapcar 'srqt x))) lst1 lst2 lst3 ...) а без нее ... попробуй написать сам.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 14.03.2011 в 17:58. |
|||
|
||||
Дима! Лучше на эту тему и не думать. Аргументы против:
1. .NET/ARX принимают далеко не все типы параметров, которые может передать VLisp. В частности не передаются vla-объекты, имена функций (их нужно передавать как строки). 2. Параметры передаются в .NET/ARX как список. 3... |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Маэстро - слава богу хоть Вам не надо объянсять что я имею в виду (видимо вопрос включает в себя 2 слишком разные области программирования) - поверю Вам на слово - жаль конечно, но видимо не судьба.
p.s. Чтож я раньше не додумался - проверить элементарной фунцией которая возращает свой-же аргумент(ResultBuffer) -net аналог list - ведь даже лямбду он не понимает - то есть - код только в строки загонять (даже на quote руганулся) - да еще и обратный лисп парсинг - нафиг - тут действительно овчинка выделки не стоит.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 15.03.2011 в 12:59. |
|||
|
||||
Списки, в том числе и вложенные - запросто. НО!
1. Элементами этих списков не могут быть vla-object, функции и др. 2. Если список подобен DXF-коду, то он будет передан именно как DXF-код. Т.е. '(10 1 2 3) будет передано как '(10 1.0 2.0 3.0) 3. В версиях AutoCAD до 2007 вложенные списки передавать нельзя. 4. Ну и наверняка еще что-нибудь я забыл. :-)
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Offtop: Ну да... вы ведь самый "забывчивый"
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объединение разбитого на слова текста | Mist | AutoCAD | 46 | 24.05.2020 21:08 |
Возможно ли автоматизировать подобный процесс? | Shaft | Программирование | 13 | 24.06.2010 09:18 |
Как автоматизировать печать чертежа? | Serge_BN | Программирование | 13 | 04.03.2010 14:34 |
Отыскание условного экстремума с помощью множителей Лаграньжа | slogos | Программирование | 19 | 11.02.2010 12:59 |
(GRREAD) и привязка | Ева | Программирование | 17 | 18.12.2009 09:10 |