![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Modus ponens
|
Вашему вниманию предоствляется следующий тест-кейс: порт макроса из Лиспа (progn (), (), ...()) в AS3
![]() Пример: package { import flash.display.Sprite; import tld.wvxvw.lasp.collect; import tld.wvxvw.lasp.Lasp; import tld.wvxvw.lasp.nth; import tld.wvxvw.lasp.progn; import tld.wvxvw.lasp.value; /** * ... * @author wvxvw */ public class TestProgn extends Sprite { public function TestProgn() { super(); this.testProgn(); } private function testProgn():void { trace (value (nth (collect (progn (trace, "testing...", 123) (trace, "second round", 456) (trace, "third", 789)(isNaN, 100) (trace, /foo/g)), 4))); } } } ))Последняя редакция. Остальные исходники можно посмотреть тут: http://pastebin.com/kF5RazSV
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 05.02.2011 в 00:02. |
|
|||||
|
Не. Не катит. Хочу Фортран.
Тыща форматов вывода и обобществленные области данных (COMMON) |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Блин хотел бы порадоваться, но совсем не в теме)
До лиспа не дошёл ещё.. тем более до этого макроса. Вижу, что с каким то конвеером связано.. можешь для совсем тупых разъяснить, что и куда? И главное, в чём прикол?
__________________
Отряд Котовскага |
|
|||||
|
Modus ponens
|
Этот макрос просто позволяет последовательно выполнить несколько функций (то что вобщем-то делает в AS3 запятая). В Лиспе он часто нужен там, где нужно передать функцию, а нужно выполнить несколько функций, например в (if condition iftrue iffalse), вот iftrue / iffalse ожидают функцию, т.е. было бы: (if condition (progn (f1) (f2) ... (fN)) (progn (f1) (f2) ... (fN))). Ну а прикол в том, что синтаксис сохранен почти один в один (жаль, запятые в списках никак не побороть
).А вообще, у меня есть мысль написать интерпретатор Лиспа для Флеша. Ну это так, мЯчты пока что, но задел какой-то уже есть... только времени совсем нету...
__________________
Hell is the possibility of sanity |
|
|||||
|
Lisp я изучу в ближайшие полгода на мало-мальский уровень, но инетрпретаторы это круто )
Немного не в тему, но почему именно Lisp?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Цитата:
![]()
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
|
Это не попытки извращения, это как бы любовь.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Modus ponens
|
Ммм... наверное потому что это чем-то на игрушку Portal похоже.
А еще потому что мне интересно метапрограмирование. А еще потому что мне просто очень тяжело дается bash / sh и им подобные, ну и не писать же какие-то утилиты нужные по работе на PHP... Python мне не нравистся изза форматирования и динамической типизации. Вобщем, и выбирать не из чего осталось ![]() Да, еще такой момент: в этом языке, ну, по крайней мере пока что мне так кажется, всегда есть ответ на вопрос "зачем" и "почему". Т.е. язык построен на логике а не на предрассудках / исторически сложившихся обстоятельствах. Т.е нету каких-то недоразумений типа "А почему Number с прописной а int со строчной?".
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 05.02.2011 в 23:00. |
|
|||||
|
Цитата:
Ам... я если честно не понял часть про "утилитки по работе". Если нужен Lisp - нужно взять Lisp. Но тягу к таким глупостям, которые по сути не нужны, но очень забавные я одобряю ![]()
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|