LINUX.ORG.RU

Haskell On a Horse — веб-фреймворк со стрелочками!

 , ,


1

0

Haskell On a Horse — новый веб-фреймворк для языка Haskell.
На текущий момент библиотека находится в стадии разработки, но хакеры могут попробовать её уже сейчас.
Библиотека выпускается под свободной лицензией BSD3. На сайте находятся интерактивные примеры и документация.

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: shimon (всего исправлений: 2)

Итак, веб-фреймворков на хаскеле уже как минимум 5. happstack, yesod, bird, frame, и вот теперь лошадь. И это не считая всяких wai и cgi поделок.

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

Мне в этом фреймворке предлагается писать хтмл в виде

Зато Hamlet - один из самых быстрых хаскельных хтмл-генерилок.

А вообще, можно и так

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

> Фи, уважаемый, не упоминайте в этом треде этот недофункциональный язык.

Too fat.

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

> Просто посмотреть на сигнатуру типа

Сигнатуру типа чего? Операции «+»? Вот так сходу? Ну давайте, а + б, какого типа у нас тут «+»?

Тогда как раз можно было бы использовать эти же операции для весторов и матриц

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

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

> Сигнатуру типа чего? Операции «+»? Вот так сходу? Ну давайте, а + б, какого типа у нас тут «+»?

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

Операнды у нас какие-то определённые, передаются параметрами в функцию или возвращаются другой функцией, так что часто можно просто забыть об этом и думать в духе «что-то там как-то складывается». И оно сложится! :) Ну, за исключением ошибок типов или мономорфизма.

Я часто ловлю себя на мысли, что иногда при работе с классами типов вообще не задумываюсь над конкретными типами операндов. Просто потом C-u C-c C-t в Emacs, и вот вам тип. Это (примерно) как динамика, только не страшно. Тайпчекер всё стерпит :)

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

То есть, типы выражений с контекстом часто как бы подстраиваются под конкретные типы других выражений. Например, 4 + length xs.

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

А мне кажется, что этого знать и не надо. Вот когда будем определители считать, determinant :: Matrix a -> Integer, и оно само специализируется с Num a => a до Matrix a. Конечно, этим злоупотреблять не стоит, но вот сложение/умножение много где можно перегрузить.

// request objection, так что ждём ваши контраргументы =)

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

> Зато Hamlet - один из самых быстрых хаскельных хтмл-генерилок.

Есть ещё html-blase. С фронтов сообщают, что работает с субсветовой скоростью.

anonymous
()

Гы, название очень сильно что-то напоминает...

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

>Операции «+»? Вот так сходу?

(Num t) => t -> t -> t ?

Ну давайте, а + б, какого типа у нас тут «+»?

t -> t -> t, где t имеет инстанс Num?

Что мешает аннотировать тип явно - а + б :: Int, чем городить кашу из операторов, имеющих одну семантику.

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

>перевести на русский слово «iteratee»?

Боюсь, что этот язык не имеет своих свойств это сделать. По крайней мере, я не смог вспомнить. Семантически это что-то типа того, над чем нечто повторяется. «повторант»?.

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

>Боюсь, что этот язык не имеет своих свойств это сделать. [..] что-то типа того, над чем нечто повторяется. «повторант»?.

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

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

нужны плюшки. например очень интересно взглянуть на реализацию ext.direct на хаскеле. есть?

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

Кушать подано! Да пофиг какой смысл у тебя имеет хакер. Хакер всегда был Хакером

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

> Итак, веб-фреймворков на хаскеле уже как минимум 5. happstack, yesod, bird, frame, и вот теперь лошадь. И это не считая всяких wai и cgi поделок.

Эволюция софта, елки-палки. Так и должно быть.

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

>iteratee очень похож на «итерируемое»

О! Уже совсем хорошо :)

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

>язык-то позволяет что угодно сделать

Но многое крайне неудобно. Что поделаешь, предки, занятые выращиванием еды или отбором её у соседей, не думали о том, что нам может понадобиться удобный способ называть абстракцию «объект повторяющегося действия» (например). У других языков такое есть, и здешние вместо правки языка «заимствуют» готовые слова, раздувая и без того неподъёмный словарь.

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

>очень похож на «итерируемое»

А «iter» переводить не нужно? Или в русском языке такого слова нет? Ведь есть же, а вот без нового корня не обойтись.

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

>воспроизводимое

Слишком похоже на само действие (то, что повторяется), причём контекст не поможет различить.

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

>Не нужно. «итерация» - известный и сильно докомпьютерный официальный термин

То есть слово, означавшее «повторение» не удавалось перевести на русский язык, т.ч. пришлось притащить снаружи. Что и требовалось доказать.

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

>То есть слово, означавшее «повторение», не удавалось перевести на русский язык

K.O. спрашивает: а как же «повторение»? :)

т.ч. пришлось притащить снаружи. Что и требовалось доказать.


Просто русский язык, в отличии от более другого, не любит без нужды нагружать новым смыслом старое слово. Чтобы не было у популярных слов по целой странице значений в словаре :)

Поэтому, когда для «повторения» потребовался конкретный узкий новый смысл - циклическое повторение в расчётах, то не стали использовать уже имеющийся термин, расширяя его значение, а заимствовали слово. Что в русском встречается очень часто и является заурядным явлением. И не от бедности языка, а от иных языковых приоритетов.

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

>>это не итератор, а такая штука, которая управляет итерацией. Как это обозвать?

Итератитель:)

Итить.. Точно, «итератитель». Или «итерун».

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

>Итить.. Точно, «итератитель». Или «итерун».

Лишь бы не «итераст».

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

> да пофиг мне на ваше вики. сейчас слово «хакер» имеет совсем другой смысл.

Представляешь, а многим пофигу на тебя, деточка. :)

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

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

>не любит без нужды нагружать новым смыслом старое слово

Точнее «старые корни». Поэтому когда нужно какой-либо уточнение или наоборот, обобщение старого смысла, мы ищем какое-то иностранный аналог для заимствования. И поэтому, несмотря на отсутствие длинных статей в словаре, сам словарь будет гораздо толще аналогов. Это во первых. Во вторых же,

не от бедности языка, а от иных языковых приоритетов

отсутствие встроенных методов это не «приоритеты», а таки «возможности». Вот тут вся толпа так и не смогла достаточно удобно перевести iteratee.

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

Представляешь, а многим пофигу на тебя, деточка. :)

Небось, К.О. подсказал?

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

Не будь идиотом, некорректное же сравнение.

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

>отсутствие встроенных методов это не «приоритеты», а таки «возможности»

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

Вот тут вся толпа так и не смогла достаточно удобно перевести iteratee.


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

Наконец, действительно, чем не нравится «итерируемое»? И суть передаётся, и для языка форма естественная.

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

Все верно глаголите.

их надо хреначить куда надо и куда не надо

Помнится, критика метапрограммирования в 60-70 годах начиналась примерно с этой же мысли.

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

Ага, и Scala on Snail (SoS) а также C++ on a С

:)

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

>чем не нравится «итерируемое»

Корнем. Внесение в язык новых только для того, чтобы выразить абстракцию, связанную с уже существующим словом, означает неспособность языка описывать требуемое.

DonkeyHot ★★★★★
()

А не кульхацкеры, а нормальные программисты, получающие за свою работу нормальные деньги, это поделие используют?

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

>Корнем

Это _уже_ давно корень русского языка :)

http://slovari.yandex.ru/итерация/БСЭ/Итерация/

означает неспособность языка описывать требуемое


Да-да. Панталоны, фрак, жилет - всех этих слов на русском нет...

Кстати, в английском корень «iter» тоже заимствован. Из латинского.

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

>нормальные программисты, получающие за свою работу нормальные деньги

быдлокодеры на плюсах, что ли?

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

>Это _уже_ давно корень русского языка

Да. Асимптотически - никому не хватит жизни на изучение этого языка. Поимеем общество всеобщего невежества.

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