- 1
- 2
- 3
- 4
- 5
- 6
- 7
s f g x = f x (g x)
k x y = x
b f g x = f (g x)
c f g x = f x g
y f = f (y f)
cond p f g x = if p x then f x else g x
fac = y (b (cond ((==) 0) (k 1)) (b (s (*)) (c b pred)))
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+119
s f g x = f x (g x)
k x y = x
b f g x = f (g x)
c f g x = f x g
y f = f (y f)
cond p f g x = if p x then f x else g x
fac = y (b (cond ((==) 0) (k 1)) (b (s (*)) (c b pred)))
Когда-то на С видел такое. ЧСХ кода было меньше.
Сударь, позвольте: тут хаскель-то использется как псевдо-язык для определения комбинаторов, более идиоматчино было бы, например:
http://ideone.com/TsUN5
Вердикт - не труъ.
>Вердикт - не труъ.
Кто бы спорил. Сначала же сказал, что "видел" - следовательно сей говнохак не мой.
Я кстати нашел тот тред:
http://govnokod.ru/5561
на что посимвольное совпадение с http://www.willamette.edu/~fruehr/haskell/evolution.html уж никак не намекает.
Этот боян чуть ли не 3 раза на том же лоре появлялся, и в контексте всей заметки смотрится как (само)ирония. А здесь - как вброс.
А настоящий индус никогда не будет читать код предшественника, он просто будет прикручивать к нему свои велосипеды и костыли.
[0..9]>>[1] или 1<$[0..9]
> 1<$[0..9]
Это только если не считать Если бы мне такая хрень понадобилась, я бы написал Но тут 15 символов
А если для людей - лучше сразу replicate 10 1.
http://vimgolf.com/challenges/4d6f45b938c0aa691b000003
Правда vim обогнать не получилось.
В нашем случае получается тоже самое, что только <$ работает с любыми функторами: деревьями, Maybe и т.п.
http://stackoverflow.com/questions/9515327/default-constructors-initialization-of-pod-and-implicit-type-conversions-in-c