Найти - Пользователи
Полная версия: MIT переходит со Scheme на Python
Начало » Флейм » MIT переходит со Scheme на Python
1 2 3
Ferroman
REPL - тут читать http://pcl.catap.ru/doku.php?id=pcl:%D1 … %D0%B2repl Это когда компилируешь по одной функции,
строя, таким образом, программу.
Или я чего-то не понимаю, или это python shell. Ну и есть ipython.
Или нет, и есть принципиальные отличия?
asv13
Я тоже не понял про REPL.
Возможность сохранить сессию это заслуга SLIME+emacs, при чем здесь лисп? Собственный REPL у CLISP - в тестовом режиме, до emacs ему далеко, и даже подсветки нет как в IDLE, аскетизм полный. Или он по команде тоже все заданные определения функций выгружает в файл?
astoon
asv13
Я тоже не понял про REPL.
Возможность сохранить сессию это заслуга SLIME+emacs, при чем здесь лисп? Собственный REPL у CLISP - в тестовом режиме, до emacs ему далеко, и даже подсветки нет как в IDLE, аскетизм полный. Или он по команде тоже все заданные определения функций выгружает в файл?
Неа, это заслуга не среды разработки, и даже не реализации лиспа (коих много), а (имхо), самого стандарта. Ты работаешь с проектом, не перезапуская его, а просто вызывая перезагрузку функций. (Режим полной комплияции (не в байткод как обычно, а в машинный) - не в счет, он редко нужен на практике. Я не слышал что-то о реализациях ANSI Common Lisp, не поддерживающих такой полный REPL (не-common, а другие, специфические диалекты лиспа, опять же, не в счет. А по scheme реализациям не знаю, правда.)

clisp реализация лично мне вообще не нравится, из бесплатных - уж лучше sbcl.
asv13
wikipedia: Python has a built-in REPL and a more enhanced version in IPython.
Я так и не понял чем REPL питона не таков? Что с ним не так как в схеме и лиспе?
astoon
Неа, это заслуга не среды разработки, и даже не реализации лиспа (коих много), а (имхо), самого стандарта.
Я говорил про конкретную возможность сохранить все ранее введеное в отдельный файл, что похоже все-таки заслуга скриптов emacs. В IDLE я этого не нашел, но может есть в ipython.
cybergrind
balu
Про рекурсию - не, не поменялось.
ну именно для таких задач можно заюзать stackless. просто разрешение задач таким путем - это скорее особенный образ мышления и подход к решению задач (помню поучил немного erlang, так на питоне такое начал писать что ппц, рекурсия на рекурсии, и вроде все работало =)

balu
Например код на питоне генерируется лиспом
да генерировать код можно без особых проблем для других языков =)


я скорее склоняюсь к мысли о том, что есть свой стандартный набор паттернов (может неверно использовал слово) и идиом у языка, и у разработчика, и проблема только в том, насколько сложно реализовать необходимый тебе функционал. Рекурсия - пример принципиального ограничения у питона, но есть один момент - делать рекурсивные функции очень сложными - себе дороже, а если они простые - то легко переписываются (лучше привести пример где без рекурсии никак…. а есть ли такие?)
balu
asv13
Возможность сохранить сессию это заслуга SLIME+emacs, при чем здесь лисп?
При том, что это может быть не только SLIME+emacs - REPL понимает namespace. В результате, когда ты видишь, что что-то пошло не так, ты только переопределяешь то, что надо и все идет как надо.
asv13
Собственный REPL у CLISP - в тестовом режиме, до emacs ему далеко, и даже подсветки нет как в IDLE, аскетизм полный.
Сравнение не корректно:
1) Сам по себе питон тоже работает в текстовом режиме. IDLE - лишь надстройка над ним.
2) Сравнивать имеет смысл среды разработки - для Lisp это, чаще всего, Emacs+Slime и в этом случае процесс разработки отличается от питоновского тем, что ты работаешь одновременно как с исходником, так и с REPL, причем гибкость там огромная.
balu
cybergrind
лучше привести пример где без рекурсии никак…. а есть ли такие?
Обработка произвольных деревьев, например - парсер синтаксиса.
cybergrind
да генерировать код можно без особых проблем для других языков
Можно, тезисом Черча-Тьюринга доказано. Но на лиспе веселее, он специально для этого заточен.
ZZZ
balu
Обработка произвольных деревьев, например - парсер синтаксиса.
Мне кажется, что cybergrind хотел увидеть достаточно глубокую рекурсию. Так, чтобы CPython'а не хватило. Вот реально, зачем в Sackless так увеличили её, рекурсии, максимальную глубину?
balu
ZZZ
Мне кажется, что cybergrind хотел увидеть достаточно глубокую рекурсию
Я же напейсал - обработка деревьев произвольной глубины.
ZZZ
Вот реально, зачем в Sackless так увеличили её, рекурсии, максимальную глубину?
лучше бы гарантировали хвостовую рекурсию.
ZZZ
balu
например - парсер синтаксиса
Тут с не слишком-то много.
А вот где взять реально большое дерево?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB