Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет kouzdra ([info]kouzdra)
@ 2011-10-23 11:01:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Постфункциональное
Подумалось тут - чем хороша функциональщина - что наконец под языками появилась строгая и гибкая семантика, что резко расширяет возможности и языкового дизайна и программирования, чем плоха - читаемость кода на том же хаскеле мне лично более всего напоминает читаемость ассмеблерного или фортового кода. С другой стороны - а что мешает плюнуть на "чистоту синтаксической идеи" и начать "отматывать" синтаксис обратно к "нормальным языкам" - не везде естественно, а только там где это можно сделать удобно и без нарушения семантики: что-то типа вместо

let (_, y) = foldl (\((x,y), elem) -> ...) (x, 0) [...] in y

писать что-то вроде:
 for [x, y = 0] (elem in [...]) do 
   x := max (x, elem), y := y + x 
   done;
    ...

С подразумеваемой трансляцией именно в fold


(Добавить комментарий)


(Анонимно)
2011-10-23 13:12 (ссылка)
State Monad?

(Ответить)


[info]polter
2011-10-23 15:31 (ссылка)
а вот так не понятнее чем цикл?

moo = moo' 0
where moo' y [] = y
moo' y [x:xs] = moo' ((max y x)+y) xs


фолды очень клево но по-моему когда видишь внутре у ней лямбду, значит пора переписывать

(Ответить)


[info]horsh
2011-10-24 02:09 (ссылка)
> что мешает

Компилятор станет сложнее, описание языка станет сложнее.
У них не чистота синтаксической идеи, а тупо нежелание возиться
с мегапарсерами a la Алгол 68 и Cиплюсплюс.

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

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2011-10-24 20:28 (ссылка)
Я вааще-то лучше А-68 сейчас распаршу чем Хаскель. Куда проще.

(Ответить) (Уровень выше)


[info]potan
2011-10-24 11:14 (ссылка)
А потом думать, что представляет из себя x после этого цикла...

(Ответить)


[info]ifp5
2011-10-25 12:31 (ссылка)
Я довольно активно, года 3-4, пописал на Хаскеле и, по-моему читабельность его (т.е. усилия, требуемые чтобы понять код с заданным кол-вом функциональности) близка к идеалу. Вот с чем действительно проблема - так это с тотальной ленивостью, победить которую (когда она являлась причиной cpu/memory hog) иногда давалось с трудом.

(Ответить)