Home
Polytypic polyrythm [entries|archive|friends|userinfo]
palm_mute

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Хозяйке на заметку [Aug. 31st, 2007|03:42 pm]
[Tags|, ]

ghci иногда печатает трудночитаемую кашу:
Prelude> :m +Data.List
Prelude Data.List> tails $ tails [0..5]
[[[0,1,2,3,4,5],[1,2,3,4,5],[2,3,4,5],[3,4,5],[4,5],[5],[]],[[1
,2,3,4,5],[2,3,4,5],[3,4,5],[4,5],[5],[]],[[2,3,4,5],[3,4,5],[4,
5],[5],[]],[[3,4,5],[4,5],[5],[]],[[4,5],[5],[]],[[5],[]],[[]],[]]

дальше )
[1]ipprint-0.2.tar.gz
Update: благодаря Spenser'у Janssen'у (которому, собственно, принадлежит идея) ipprint теперь на Hackage:
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/ipprint
Link2 comments|Leave a comment

К вопросу об эффективности композиции [Jul. 6th, 2007|12:59 pm]
[Tags|, , ]

Хотелось бы написать о чем-то возвышенном - например, о delimited continuations и инверсии парсеров, а еще раскритиковать трансформеры монад по ходу дела. Но, к сожалению, я пока мало в этом разбираюсь, потому напишу об обычных списках и функциях.

Как известно, добавлять элементы в конец списка в Haskell и других функциональных языках неэффективно. Поэтому, если эту операцию требуется делать в цикле, применяются различные трюки - накапливать в обратном порядке, а затем разворачивать, или более элегантно - представлять недостроенные списки в виде функций )
Link22 comments|Leave a comment

Djinn mode for Emacs [May. 17th, 2007|01:24 pm]
[Tags|, , ]

Как известно, Djinn - theorem prover для Haskell, который может выводить определения функций из типов, используя изоморфизм Карри-Говарда.

Теоретически, он должен помогать при написании злых комбинаторов ну очень высокого порядка, тип которых записать легко, а определение - труднее. На практике мне еще не приходилось прибегать к помощи Джинна, но почему-то захотелось иметь поддержку Джинна в Емаксе. Поиск в гугле показал, что в своем желании я не одинок:
And now I greatly desire an Emacs haskell-mode with Djinn built in, so I can type "M-x write-program-at-point RET".

Тем не менее, готового djinn-mode.el не нашлось. Значит, надо делать самому. Emacs-lisp я совсем не знаю, но это не препятствие - есть inf-haskell.el, из которого можно почти все содрать (да здравствует open-source!).
Итого, в настоящий момент имеются функции
M-x inferior-djinn-show - выпускает джинна из бутылки в емаксовский буфер, и
M-x inferior-djinn-define - спрашивает имя и тип, вставляет полученное от джинна определение в текущий буфер.
Хорошо бы добавить функцию, которая будет сканировать определения типов в текущем буфере и отправлять их джинну.
Если это показалось кому-то интересным - вот код )
Link15 comments|Leave a comment

Lytdybr [Apr. 19th, 2007|05:31 pm]
[Tags|, , ]

Потихоньку сбывается мечта идиота - применяю Haskell в реальной работе. Не так, конечно, как Lennart Augustsson в Credit Suisse, скромнее: прототипирую на Хаскеле, переписываю на чем попало (C#, например). Данных для серьезной статистики пока маловато, но на последнем написанном куске соотношение объемов кода C#/Haskell при одинаковой функциональности приблизительно равно 10.
До чего же скучно переписывать, доложу я вам...
Link16 comments|Leave a comment

typeNameOf [Mar. 14th, 2007|12:01 am]
[Tags|]

Придумал хак. Не знаю, имеет ли он право на жизнь, но здесь от него вреда не будет:
Code inside )
Link50 comments|Leave a comment

Avoid success at all costs [Mar. 6th, 2007|04:46 pm]
[Tags|]

Не успел я толком разобраться с фундепсами (мануал изучил, но в бою не пробовал), а Simon Peyton Jones уже собирается от них избавиться.
Link18 comments|Leave a comment

Takusen-0.6 под Win32 [Mar. 2nd, 2007|02:20 pm]
[Tags|, , ]

Кто-нибудь ставил сабж? Мне удалось это сделать, но не лучшим образом, поэтому я решил написать о своих приключениях здесь, дабы 1) кто-нибудь указал мне лучший путь, если он существует 2) если лучшего пути не существует, сохранить для себя и потомков этот mini-howto.

Read more )
LinkLeave a comment

Project Euler, task # 14 [Dec. 25th, 2006|12:25 am]
[Tags|, , ]

По наводке от [info]antilamer решил задачку #14 Проекта Эйлера. Куда отправлять решения на их сайте (глючит он изрядно), я не понял, поэтому выкладываю здесь.
spoiler )
Link13 comments|Leave a comment

navigation
[ viewing | most recent entries ]