October 15th, 2007
Красивое.
"Скажите, не на вас ли я был когда-то женат?"
Мысль.
Функциональность языков определяется возможностью рассуждения с подстановкой результатов вместо вычислений.
Чем чаще мы можем применять (\x.e)z ≅ e[x/z], как при написании кода, так и при рассуждении о нем, тем нам лучше, а язык функциональней.
Соответственно, хуже всего с языком, который не дает это делать вообще. Это будет идеально нефункциональный язык во всех смыслах этого слова. Intercal будет нервно мять кружевной платочек в длииных тонких пальцах.
Как его сделать?
Взять лямбда-исчисление с индексами де Брюина (de Brujin) и рандомизировать их.
Мало, я думаю, не покажется. ;)
Чем чаще мы можем применять (\x.e)z ≅ e[x/z], как при написании кода, так и при рассуждении о нем, тем нам лучше, а язык функциональней.
Соответственно, хуже всего с языком, который не дает это делать вообще. Это будет идеально нефункциональный язык во всех смыслах этого слова. Intercal будет нервно мять кружевной платочек в длииных тонких пальцах.
Как его сделать?
Взять лямбда-исчисление с индексами де Брюина (de Brujin) и рандомизировать их.
Мало, я думаю, не покажется. ;)