LINUX.ORG.RU

LC - это метапрограммирование.

 , lc, ,


2

2

Осмысливая итоги своей прошлой попытки понять LC, пришла мысль, довольно очевидная, которая почему-то не приходила раньше.

LC - это метапрограммирование в чистейшем виде. Любая апликация возвращает либо другую аппликацию, либо абстракцию, которая «ждет» аргумента, чтобы вновь применить и абстрагировать. Иными словами, любое выражение LC - это диспетчер, который принимает на вход другого диспетчера, и возвращает его же. Выражение в LC не может манипулировать реальными программами, оно манипулирует только метапрограммами!

Отсюда возникает интересное следствие. LC имеет своего рода «утечку абстракции», только в прпотивоположном направлении. Когда мы пишем «обычную» программу, мы «спускаемся вниз» по абстракции. Например, если мы пишем:

(lambda(x y) (x y))
мы подразумеваем: взять любые 2 программы и применить одну к другой. Здесь мы подразумеваем, обычно, что на аргументные места призойдет подстановка реальных программ, которые выдадут нам какой-то результат. Никто не запрещает, конечно, подать такие программы, которые породят другую абстракцию, но ступени абстракции тут очевидны. Мы «спускаемся вниз» от общего к частному. Теперь рассмотрим другой код
(define tst
  (((lambda(x) (lambda(y) (x y))) (lambda(x) x)) (lambda(x) (lambda(y) (x y)))))

(write ((tst (lambda(x) x)) 'b)) ; --> b
Здесь, вроде бы очевидно, что мы «поднимаемся» по абстракции. Исходная метапрограмма берет на вход 2 метапрограммы, и применяет одну к другой. Но на выхлопе, мы имеем ту же метапрограмму, что и исходная! Неясно, на каком уровне абстракции мы работаем в каждый конкретный момент вычисления, абстракция «течет», уничтожаются барьеры абстракции, и это, на мой взгляд, коренное противоречие.



Последнее исправление: anonimous (всего исправлений: 2)

Заткнись и пиши код (с)

thesis ★★★★★
()
Ответ на: комментарий от anonimous

Эх, я не знал, что она есть наивная там или не наивная. Видишь, какое я быдло. Если тебе так уж интересно, нашел бы форум получше

vonenij
()
Ответ на: комментарий от kvitaliy

не дождешься от ТС'а математики - все его посты это пространные рассуждения о сущности бытия, в которых он варится в собственном соку. Математический язык для него непостижимая сущность, ознакомься, например Физика и динамические системы (комментарий)

guest_star
()
Ответ на: комментарий от vonenij

Да я ничего не имею против тех кто чего-то не знает. Можно не знать вообще ничего из «наук» и, тем не менее, делать верные выводы. Я же говорю всегда, что теория вторична, первично понимание.

anonimous
() автор топика

Скажи мне, ОП, ты был на dxdy.ru? Если был - дай ссылку. Не был - тем более дай, я хочу это видеть.

userid2
()
Ответ на: комментарий от userid2

Меня математика как таковая вообще мало интересует. Я считаю, что программирование не имеет ничего общего с математикой, скорее с лингвистикой. Но так уж сложилось, что современное программирование увязло по уши в этом говне, поэтому приходится разгребать по мере сил.

anonimous
() автор топика
Ответ на: комментарий от guest_star

все его посты это пространные рассуждения о сущности бытия

Если б ты был способен понять, в принципе, что такое математика, в частности, то, что это вовсе не число-бство, которое происходит перманентно в твоей головке, как у кассирши, ты б понимал, что математика - это и есть пространные рассуждения о сущности бытия

anonimous
() автор топика
Ответ на: комментарий от anonimous

А, то есть мы предпочитаем спорить о математике с программистами. И просим помочь разобраться в ней тоже программистов. Бесспорно, хороший подход для искателя истины.

Это очень напоминает инженеров, которые моделируют релаксацию молекулярных возбуждений RC-цепочкой, а любой циклический процесс подгоняют под критерий Найквиста. Разница только в том, что у них это получается.

userid2
()
Ответ на: комментарий от userid2

Разница только в том, что у них это получается.

Это общий момент, у <хороших> инженеров всегда все получается, в отличии от математиков, у которых получаются только кони в вакууме. Смысл в том, что инженеру пох, что взять как инструмент, веревку трубу или линейку. Для него, любая теория - лишь инструмент, он не будет дрочить на ее математическую корректность, а проверит на практике. Если практика покажет положительный результат, он сделает вывод, что инструмент годен для данной задачи, но никак не то, что теория «математически чиста». Все это касается и физиков, почти в той же мере.

anonimous
() автор топика
Ответ на: комментарий от userid2

И да, я писал в стартовом посте об LC только лишь потому, что в настоящее время, дизайн языков программирования во многом выстроен исходя из понимания программирования с точки зерния LC. Само по себе, в качестве коня для теоретизаций оно меня не интересует.

anonimous
() автор топика
Ответ на: комментарий от userid2

для искателя истины

И никакую истину я не ищу, за исключением эфективного метода.

anonimous
() автор топика
Ответ на: Пару дней не заходил, а тут всё то же от vonenij

Многочлен релевантно притягивает астероидный интеграл от функции, имеющий конечный разрыв, что лишний раз подтверждает правоту Эйнштейна. Интеграл по бесконечной области вращает график функции многих переменных, не учитывая мнения авторитетов. Гетерогенная структура испускает Ганимед, что неудивительно. Математическое моделирование однозначно показывает, что эгоцентризм одинаково вызывает непреложный атом, при этом дефект массы не образуется. Неоднородность, если рассматривать процессы в рамках специальной теории относительности, иллюзорна.

Есть уже http://vesna.yandex.ru/

anonymous
()
Ответ на: комментарий от anonimous

Угадал комментатора по комментарию.

Не угадал.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.