Вот, немного поковырял Haskell и испытал то же чувство, когда после Sinclair Basic (который с номерами строк и GOTO) перешел на Pascal.
Постоянный вопрос — неужели эту запись можно однозначно интерпретировать. Ну и краткость записи потрясает, как будто кто-то долго думал как можно записать короче, при этом чтобы не возникало коллизий.
Сожаление одно — это язык мечтателей. Т.е. сколько бы ты ни тратил на него времени, сколько бы не углублялся — в реальной твоей практике он тебе не понадобится Во всяком случае для меня — если у вас хороший мат. бэкграунд и пр. — ситуация может быть другой.
А так, вместо ребусов, для тренировки мозга — ОК.
Ну и вопрос. А есть ли языки более высокого уровня? Ну, если не считать языки естественные (гуманоидные тобишь), а вот реально чтобы можно было писать программы общего назначения. Или Haskell — это потолок?
Здравствуйте, Shmj, Вы писали:
S>Вот, немного поковырял Haskell и испытал то же чувство, когда после Sinclair Basic (который с номерами строк и GOTO) перешел на Pascal. S>А так, вместо ребусов, для тренировки мозга — ОК.
Взаимоисключающие параграфы детектед.
Почетный кавалер ордена Совка.
Re: Уровень языка (впечталения после пары дней с Haskell)
S>Ну и вопрос. А есть ли языки более высокого уровня? Ну, если не считать языки естественные (гуманоидные тобишь), а вот реально чтобы можно было писать программы общего назначения. Или Haskell — это потолок?
Prolog?
Re: Уровень языка (впечталения после пары дней с Haskell)
Здравствуйте, Shmj, Вы писали:
S>Ну и вопрос. А есть ли языки более высокого уровня? Ну, если не считать языки естественные (гуманоидные тобишь), а вот реально чтобы можно было писать программы общего назначения. Или Haskell — это потолок?
Конечно есть — LISP и его диалекты. Причем они существенно проще Haskell для понимания, так как содержат в разы меньше абстракций.
Re: Уровень языка (впечталения после пары дней с Haskell)
S>Ну и вопрос. А есть ли языки более высокого уровня? Ну, если не считать языки естественные (гуманоидные тобишь), а вот реально чтобы можно было писать программы общего назначения. Или Haskell — это потолок?
1. Лисп намного проще, но идейно — тот же.
2. Пролог.
Имею пример в Ташкенте, когда один перец задачи АСУ писал на ТурбоПрологе.
3. APL.
В одной книжке один гуру признавался, что однажды ему пришлось расшифровывать программу на APL из 4 строчек.
Он потратил на это около 4 часов.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Уровень языка (впечталения после пары дней с Haskell)
Здравствуйте, Shmj, Вы писали:
S>Ну и вопрос. А есть ли языки более высокого уровня? Ну, если не считать языки естественные (гуманоидные тобишь), а вот реально чтобы можно было писать программы общего назначения. Или Haskell — это потолок?
Полно. Но они еще реже используется.
Немного ближе к практике из этих языков Idris (там нет ленивости).
А так еще есть теорем пруверы. Agda, Coq, Lean theorem prover (в нем просто классный и самый понятный синтаксис для доказательства теорем),
Fstar (F*), Dafny. Кстати Wadler тут недавно написал книгу по Agda.
P.S. А так да, нужно математику хотя бы немного изучить. Если нужен список книг по математике могу написать
UPDATE: По Idris были лекции Брагилевского на русском. И еще есть книжка автора языка зачетная.
Здравствуйте, HrorH, Вы писали:
HH>Немного ближе к практике из этих языков Idris (там нет ленивости).
Idris немного читал на Хабре. Помоему похож на Haskell.
Coq смотрел для общего развития. Емнип, с ним те так все просто — ту же Великую Теорему (ее доказательство) так и не смогли выразить в Coq , хотя попытка такая есть.
HH>P.S. А так да, нужно математику хотя бы немного изучить. Если нужен список книг по математике могу написать
Нет денег для этого
Немного по работе сталкивался с математикой. Было сложно, но когда все получилось — очень большая радость на душе.
Сейчас я если что-либо изучаю, то только как часть проекта. Т.е. когда есть конкретная цель это использовать и знаю что получу. Может, если бы жил при коммунизме, то ради души бы изучал (а может быть и в потолок бы плевал — не знаю).
Здравствуйте, HrorH, Вы писали:
HH>Полно. Но они еще реже используется. HH>Немного ближе к практике из этих языков Idris (там нет ленивости). HH>А так еще есть теорем пруверы. Agda, Coq, Lean theorem prover (в нем просто классный и самый понятный синтаксис для доказательства теорем), HH>Fstar (F*), Dafny. Кстати Wadler тут недавно написал книгу по Agda.
Они "выше уровнем" по хитрожопости системы типов и ее возможностям, но не в смысле "написать практичное приложение в меньшее количество строчек". Если нам нужно читать файлы, работать с сетью, показывать окошки и таблички, обращать матрицы и считать свертки, ни Кок, ни Агда, ни F* тут не помогут сделать это проще и короче, чем тот же Хаскель. Наоборот, кода будет больше, писать его будешь в десять раз дольше, зато ошибок в нем будет чуть меньше.
Вот у Clojure есть шанс (как ни больно это признавать сторонникам статических типов), ибо вместо описания ста типов и их свойств, там будет на всю программу три простых структуры, и все выражено в них. Но это на любителя.
Re[3]: Уровень языка (впечталения после пары дней с Haskell)
Здравствуйте, D. Mon, Вы писали:
DM>Они "выше уровнем" по хитрожопости системы типов и ее возможностям, но не в смысле "написать практичное приложение в меньшее количество строчек". Если нам нужно читать файлы, работать с сетью, показывать окошки и таблички, обращать матрицы и считать свертки, ни Кок, ни Агда, ни F* тут не помогут сделать это проще и короче, чем тот же Хаскель. Наоборот, кода будет больше, писать его будешь в десять раз дольше, зато ошибок в нем будет чуть меньше.
Да, под выше уровнем можно разное понимать. И "возможность написать практичное приложение в меньшее количество строчек" отличается от "возможности написать довольно большое приложение которое потом не замучаешься поддерживать", или "возможности написать приложение в котором почти нет ошибок".
Если ближе к практике то нужен какой-то язык, который хорошо поддерживает ООП и ФП вместе. И тут вроде бы впереди всей планеты Scala 3, который обещают допилить к середине 20-го года.