Skip to main content

Command Palette

Search for a command to run...

lambda - символ, которого нет

Updated
3 min read
S

Всегда чему-то учусь!

Это не из книжки, а из вопросов-ответов, хотя, FAQ, возможно есть и в книжке, но эта цитата в любом случае, из документации - Я не могу найти ключевое слово LAMBDA в PicoLisp - потому что его там нет. Причина в том, что он избыточный; он эквивалентен quoteфункции в любом аспекте, потому что в PicoLisp нет различия между кодом и данными, и quoteвозвращает весь (неоцененный) список аргументов. Если вы настаиваете на этом, вы можете определить свой собственный lambda:

: (def 'lambda quote)
-> lambda
: ((lambda (X Y) (+ X Y)) 3 4)
-> 7
: (mapcar (lambda (X) (+ 1 X)) (1 2 3 4 5))
-> (2 3 4 5 6)

quote и её необходимости

Ещё о лямбда-выражениях смотрите первый случай в прошлом посте.

Можно привести ещё пару ссылок на тему метапрограммирования в PicoLisp и, частично, макросов:

P.S. “Чтобы два раза не вставать”, комментарий по поводу теорий с лямбда … лямда-выражений, лямбда-функций, лямбда исчисления … и прочих пи- и фи- теорий поцессов и даже мю-, как например, в теории меры … развивая концепцию анонимных функций или черных ящиков, никаких новых смыслов я не вижу … собственно, наряду с теорией меры, которая развивается (развивалась) в рамках функционального анализа, мы видим много попыток внедрения в информатику алгебраических моделей и интерпретаций, в частности, та же теория пучков, не говоря уже о группах, кольцах и полях … Но … моя фундаментальная мысль, что любая реализация компьютерной системы, сама по себе рациональна, то есть просто реализация формализма, уже формальная модель, которую можно описывать или концептуализировать, “как есть”, независимо от существования других вычислительных моделей, которые оказываются эквивалентными, ровно потому, что, в конце концов, реализуют или интерпретируют модели одних и тех же сущностей. Был момент времени, когда я хотел открыть для себя проект по сравнению всех существующих интерпретаций вычислительных моделей, пока не осознал эту банальную, но фундаментальную идею. Это не значит, что кодировщикам не надо знать о прецедентах обобщений конкурирующих практик, обе практики - собственно, практика, и практика обобщений, всегда взаимосвязаны и эрудиция - залог экспертного подхода и эффективности, “открытий”, действително, чего-то нового, но … проблемы возникают и в обратную сторону, когда существующие интерпретации просто мультиплицируются с помощью замещения другими терминами, без новых референций, структур. В результате, теорий много, экспериментов создания компьютерных систем ещё больше, а, наконец, простой теории черных ящиков так и нет, как и нет её реализации. Зато есть попытки запутать существо дела интерпретациями в терминологии моноидов, алгебраических эффектов, и прочих подобных замещений … Я не против новой терминологии, но я против, когда новое не определяется строго через существующее. Когда новый термин выдается за обозначение якобы новой сущности, которая, на самом деле, уже давно существует (до автора!) и кем-то обозначена. Просто продекларировать термин как автореферентный (остенсивное или демонстративное определение), не указав обозначаемый объект, бестолковая манипуляция.

More from this blog

Нетривиальный Repl

Это плавный переход от eval к loop к циклам и где уместно вспомнить, что эта тема уже затрагивалась в контексте самой часто употребляемой функции for и рекурсии. Repl как функция не анонсирована в документации, но есть авторская классификация в файла...

Jul 15, 20257 min read
A

abrakadabra

195 posts

Метамоделирование как интеграция философии, лингвистики и математики на базе информатики. Анализ теорий и практик программирования. Прецеденты оптимизации.