
*haskell



Inspired by the cellular automata thread, I've recently realized that one can represent a semantically infinite gap buffer using a comonad. The idea is that the result of applying cojoin to a pointed array is an array of all possible shifts of the original pointed array. The "point" in pointed array is the cursor ... more →

http://tim.dreamwidth.org/1762846.html
tl;dr бугурт какого-то трапа от сексистской шуточки, сказанной профессором-натуралом на симпозиуме.
Я так и не понял, при чем там хачкель, правда.


Плюсцы (снова) соснули
http://newartisans.com/2012/08/parsing-w...
Хачкель парсит быстрее, а кода на порядок меньше.

Функторы, монады, стрелки для самых маленьких http://newartisans.com/2012/08/monads-in...

http://www.yesodweb.com/blog/2012/07/cla...
> The motivation here is a simple hypothesis: programmers are lazy. Writing:
> "foo" ++ "bar"
> is far easier than:
> import qualified Data.Text as T
> T.pack "foo" `T.append` T.pack "bar"
THIS.

Ещё чуть-чуть, и я научусь совсем без затруднений писать на хачкеле в императивном стиле.

Лолшто
<interactive>:1:25:
No instance for (Num ())
arising from the literal `1'
Possible fix: add an instance declaration for (Num ())
In the expression: 1
In a stmt of a 'do' block: y ← [1 .. 3]
In the expression:
do { x ← [1 .. 5];
y ← [1 .. 3];
return $ when (y > 2) $ (x, y) }

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

Программистское сравнение «если бы \2 был \1» http://www.xent.com/pipermail/fork/Week-...

http://lionet.livejournal.com/96829.html
«[...] начал записывать мою интерпретацию в текстовый файл... который сразу оказался в Хаскелевой нотации почему-то. Чисто случайно, так сказать.
b3 n = b4
where
b4 f x = f (n f x)
b5 n m = b6
where
b6 f x = n f (m f x)
toint n = n b0 0
Написав такое, я понял, ... more →

le me пролистывающий темплейтосрань в листинге дизасемблера плюсцов
http://i.imgur.com/NcmKJ.png
function<_Res(_ArgTypes...)>::
operator()(_ArgTypes... __args) const
{
if (_M_empty())
__throw_bad_function_call();
...
> _M_empty()
> _M_empty()
HASKELL FLASHBACK

Гуглю "observable sharing", keywords одной хаскель-related статьи. У третьей же ссылки вместо заголовка матан:
[PDF] let {x = M} in N = N [Mvx ]( x /∈ M )
www.cse.chalmers.se/~dave/papers/observable-sharing.pdf < http://www.cse.chalmers.se/~dave/papers/...

Олололол, товарищ тут сделал простенький бенчмарк языков в тегах.
https://plus.google.com/1129120514579983...
Угадайте, кто соснул: плюсы, питон или хаскель?..
Вкратце, для неосиливших, суть такова: пишется наивный спелчекер на 20 строк. Слова из /usr/share/dict/words загружаются в ... more →

cellAt tree point = rec (rootbox tree) (root tree)
where
rec :: (NodeStorage s) => Box2 → NodeID → s (Maybe NodeID)
rec box nid = [...] zipWithM rec [b1, b2, b3, b4] [q1, q2, q3, q4] >>= (return . msum)
Как-то мне всё ещё очень сложно изолировать существенный код от монадического бойлерплейта :\
inb4: нужно ... more →

Смотреть выступление SPJ в HTML5 бесплатно без регистрации
http://yow.eventer.com/events/1004/talks...
1:00+

import Data.List
next (r,i) = ((r + (i-3)*2 + 1) `mod` 8999, i+1)
getcode exp = iterate next (1000, 11) !! (exp — 11)
ололо, ололо, я кулхацкер и хуйло.

Посоны, гм-гм, поддержите мнение что ли: http://stackoverflow.com/questions/77945...
Ну правда ведь, ФП охуенно подходит по сабжу.

string build_reverse(Tree tree) {
if(!tree)
return "";
string result = build_reverse(tree→l_son) ++ build_reverse(tree→r_son) ++ tree→value;
return result;
}
ХГМ детектед.

fact 0 = 1
fact (n+1) = (n+1) * fact n
Это работает. Почему?
То есть, почему можно патерн-матчить по арифметическим выражениям?
(+) является ещё и конструктором? в каком месте это проверяется?

$ cat test.hs
module Test where
data Test = Test
instance Eq Test where
$ ghci
Prelude> :l test.hs
[1 of 1] Compiling Test ( test.hs, interpreted )
Ok, modules loaded: Test.
*Test> let t1 = Test
*Test> let t2 = Test
*Test> t1 == t2
^C^C^C^C*** Exception: stack overflow
.\__/.
Да, я понимаю, где происходит ... more →

*haskell is used by:

0xd34df00d

ulidtko

kb

Minoru

komar

rapture

lukish

zw0rk

238328

Crazy_Owl

4da

L29Ah

werehuman

Elemir

amd63

octocat

magog

Voker57

cirno

asmer

rhinze

gelraen

MPogoda

odin

lexszero

Eight

folex

folone

nexeuse

utros

Like-all

oreolek

hirthwork

werdn

clayrat

SirAnthony

Ky6uk

Psykukumber

eurekafag

DJm00n

zamotivator

failman

saransk

madInsane

jabber

whisper

svtk

Jarkko

zetoke

hedgehog

beardog