*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
0xd34df00d
профессиональный говноед
ulidtko
kb
kb
Minoru
Minoru
Александр Марков
komar
Spiritual ecstasy
rapture
λ
lukish
zw0rk
zw0rk
16+
238328
Crazy_Owl
Crazy_Owl
4DA
4da
L29Ah
L29Ah
werehuman
werehuman
Evgeny I. E. Omelchenko
Elemir
amd63
amd63
Octocat
octocat
Mагог Магогович
magog
Voker57
Voker57
cirno
cirno
asmer
asmer
rhinze
rhinze
gelraen
gelraen
Michael Pogoda
MPogoda
desperate donkey
odin
lexszero
lexszero
8
Eight
folex
folex
folone
folone
nexeuse
nexeuse
Оранжевус Охуеннус
utros
Darth Bricktop
Like-all
oreolek
oreolek
Hirthwork McGillah
hirthwork
Andrew Motrenko
werdn
Klayraat
clayrat
SirAnthony
SirAnthony
Псикукумбер Томатический
Psykukumber
Ky6uk
Ky6uk
eurekafag
eurekafag
Bender Bending Rodríguez
DJm00n
Oleg Tsarev
zamotivator
failman
failman
lkdjvsdkjfgh
saransk
jabber
jabber
Лисий хвост
madInsane
Андрей
whisper
svtk
svtk
Jarkko
Jarkko
Fess
zetoke
18+ Запрещено для детей.
hedgehog
beardog
beardog
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
Psykukumber
Ky6uk
eurekafag
DJm00n
zamotivator
failman
saransk
jabber
madInsane
whisper
svtk
Jarkko
zetoke
hedgehog
beardog