LINUX.ORG.RU

Haskell дизайн языка


0

0

Сразу скажу, не для языкового флейма запостил это.

Интересуюсь, что почитать по дизайну языка, не учебник, а нечто похожее на работу "Дизайн и эволюция языка C++" - эта книга проясняет чем руководствовались при принятии тех или иных решений дизайна, какая цена и как стоит (не)использовать возможность языка.

Применительно к Haskell это уже вылилось в жутко раздражающий и странный прикол с добавлением элемента к списку - в начало или конец списка - честно говоря, не совсем понятно чем руководствовались создатели языка что цена операции разная (кроме возможного предпочтения разработчика языка к обработке списка с конца или начала); ну и с точки зрения чисто функционального языка - почему было принято решение полностью выкинуть итерационное программирование, которое всё равно можно сымитировать списком функций.

Надеюсь, общая мысль вопроса ясна. Что почитать на эту тему?

★★★

Re: Haskell дизайн языка

ИМХО, тебе нужно введение в ФП, особенно в lazyness.

Но посмотри на всякий случай "A history of Haskell: being lazy with class".

tailgunner ★★★★★ ()
Ответ на: Re: Haskell дизайн языка от tailgunner

Re: Haskell дизайн языка

> Но посмотри на всякий случай "A history of Haskell: being lazy with class".

Спасибо, интересная статья.

Spectr ★★★ ()

Re: Haskell дизайн языка

Ну как чем? Ленивостью, например. Хвост списка может быть ещё не вычислен, так что мы даже не знаем пока, конечный ли это список.

> почему было принято решение полностью выкинуть итерационное программирование

Кого?

Miguel ★★★★★ ()
Ответ на: Re: Haskell дизайн языка от Miguel

Re: Haskell дизайн языка

> Ну как чем? Ленивостью, например. Хвост списка может быть ещё не вычислен, так что мы даже не знаем пока, конечный ли это список.

Действительно. Значит, больше проверок производится.

> Кого?

сорри, императивное.

Спасибо за линки, буду изучать.

Spectr ★★★ ()
Ответ на: Re: Haskell дизайн языка от Spectr

Re: Haskell дизайн языка

>> сорри, императивное.

Не выкинули его. Во-первых есть всякие unsafe* функции, а во-вторых есть монады, позволяющие создать видимость императивщины.

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