LINUX.ORG.RU
ФорумTalks

декларативные языки


0

0

появилось свободное время. хочу освоить какой-то декларативный язык (какой лучше - функциональный или логический?). с какого языка начать, какими продолжить? что почитать?

anonymous

Для кучи: нет ли у кого ссылочки на учебник по фортрану?

pisun
()

> что почитать?

учебник по дискретке.

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

> и почему он лучше?

Потому что это метаязык, который поддерживает различные парадигмы. В книге On LIsp есть пример встраивания пролога в лисп за 200 строчек.

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

> Только он не декларативный, AFAIK

Я ж сказал, мультипарадигматический. Но функциональная парадигма поддерживается лучше всего. Если писать на лиспе в сишном стиле, то через полчаса захочется повесится.

nsav
()

Свободное время, говоришь, появилось? Тогда:

1. Иди работать.

2. Найди женщину.

3. Учи китайский язык.

anonymous
()

ну ладно, не хочешь make, учи Mercury. Оченно полезный, концептный язык.

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

>Я ж сказал, мультипарадигматический. Но функциональная парадигма поддерживается лучше всего.

Я ж сказал "не декларативный". При чем тут "функциональная парадигма"?

В любом случае, мне показалось, что с него не стоит начинать - он для этого слишком гибок. То есть если предполагаемые задачи не требуют абсолютной гибкости, лучше ограничииться более "высокоуровневыми" языками, чтобы не пришлось изобретать встроеные в них примитивы.

Иначе это будет похоже на изучение методов управления автомобилем начиная с мат. моделей взаимодействия шестеренок. Интересно, но малоэффективно.

NB! IMHO.

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

> Я ж сказал "не декларативный".

Что ты подразумеваешь под декларативным?

Лично я вкладываю в это определение следующий смысл -- язык, в котором программист явно не указывает порядок выполнения програмы. Чем лисп не подходит?

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

> Чем лисп не подходит?

(progn (fuck nsav 'ass) (use 'vaseline) )

или

(progn (use 'vaseline) (fuck nsav 'ass) )

Думаю, разницу ощутишь сразу :)

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

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

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

А не во всех языках есть ввод-вывод. Не всем он нужен.

К примеру, DDL часть SQL - чистейший декларативный язык.

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

> Декларативный язык -- утопия, так как в нем не может быть операторов ввода-вывода.

Собственно, да, только в хаскеле ввод\вывод инкапсулирован в монаду, а в лиспе имеет место мешанина.

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

> К примеру, DDL часть SQL - чистейший декларативный язык.

Вот именно, что часть. Просто в некоторых случаях императивные и неимперативные части разделяют, а в некоторых -- нет.

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

>В таком случае, все языки императивные, даже хаскель и пролог

Тут ты не прав, nsav. Эти 2 точно декларативные. В хаскеле нет операторов вводы-вывода. (есть функции, (-> IO x) и методы их сборки). И в прологе скорее всего нет - там предикаты с побочными эффектами (-: я его совсем не знаю, кое - что из института запомнилось, и именно это:-).

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

> Тут ты не прав, nsav. Эти 2 точно декларативные. В хаскеле нет операторов вводы-вывода. (есть функции, (-> IO x) и методы их сборки). И в прологе скорее всего нет - там предикаты с побочными эффектами (-: я его совсем не знаю, кое - что из института запомнилось, и именно это:-).

Ввод-вывод есть, значит есть императивные части. Просто они оформлены отдельно.

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

>Ввод-вывод есть, значит есть императивные части.

А кто сказал, что ввод-вывод не может быть оформлен декларативно? Оказывается таки может.

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

>Вспоминается ввод/вывод в турбо прологе :)

Это он он и был(TP), AFAIR. Я тогда понять его В/В не смог, потому забросил этот курс. Только и помню, что ничего не понял.:-)

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