- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
data Mode = Start | Read | Skip | End
data State = State Mode String String [String]
space c = elem c [' ', '\n', '\r', '\f', '\t', '\v', '\160']
end r = State End "" "" r
skip t r = State Skip t "" r
get t w r = State Read t w r
start t = State Start t "" []
step (State Start at@(t:ts) w r)
| space t = step $ skip at r
| otherwise = step $ get at w r
step (State Read at@(t:ts) w r)
| space t = step $ skip at $ r ++ [w]
| otherwise = step $ get ts (w ++ [t]) r
step (State Skip at@(t:ts) _ r)
| space t = step $ skip ts r
| otherwise = step $ get at "" r
step (State Start "" _ r) = step $ end r
step (State Read "" w r) = step $ end $ r ++ [w]
step (State Skip "" _ r) = step $ end r
step (State End _ _ r) = r
words' text = step $ start text
Решил все-таки выложить этот позор. Если есть предложения по улучшению - с радостью выслушаю.
guest 23.11.2012 09:41 # +1
Fai 23.11.2012 09:45 # +2
guest 23.11.2012 10:36 # +1
LispGovno 23.11.2012 10:37 # +1
bormand 23.11.2012 10:54 # +1
LispGovno 23.11.2012 10:58 # −3
bormand 23.11.2012 13:01 # +1
Зачем она в хаскеле, если тут и так все ленивое?
Fai 23.11.2012 13:05 # 0
bormand 23.11.2012 13:32 # 0
Fai 23.11.2012 13:41 # 0
https://github.com/failuref
Постучи в личку там.
bormand 23.11.2012 13:51 # 0
Fai 23.11.2012 13:58 # 0
LispGovno 23.11.2012 22:35 # 0
Fai 24.11.2012 07:25 # +1
Fai 23.11.2012 17:01 # −2
bormand 23.11.2012 18:27 # +4
1) У многих людей есть другие занятия, помимо говнокодика;
2) Ну пока там не особо много кода, придираться особо не к чему;
3) Лови пулл риквест про displayBoard.
Fai 24.11.2012 07:39 # 0
3) Поймал.
3.14159265 23.11.2012 23:01 # +2
Чую на илитном хацкиле кода будет больше, чем в известном килобайтном шедевре, но он будет такой же непонятный. А еще ИИ будет слабее и медленее - иммутабельное мудачьё не может в скорость.
Елси там конечно нет готовой функции - chess.
Ибо смотрю в код а там какое-то очевидное гогно и копипаст.
Это так и надо? Ведь line и столбец суть одинаковы.
guest 23.11.2012 23:21 # 0
код почти один, а конструкторы разные, поэтому приходится копипастить
guest 24.11.2012 09:13 # 0
3.14159265 24.11.2012 17:55 # 0
>приходится копипастить
Не верю. Либо кто-то что-то не осилил (в чем я гораздо больше уверен), либо хацкил и впрямь кал.
>код почти один, а конструкторы разные
Ну и нахуй тогда функцианальщина нужна? Если нельзя скомпоновать как надо?
guest 24.11.2012 19:33 # +3
Ну можно вот так например:
http://ideone.com/dD62bK
LispGovno 24.11.2012 19:51 # −1
guest 24.11.2012 20:14 # +3
3.14159265 26.11.2012 16:52 # +1
При наличии элементарных зайчатков разума.
Гумнота и на хацкиле будет копипастить. Потому что головной мозг ей заменяет известная субстанция.
LispGovno 26.11.2012 17:51 # −1
Исправляем
http://ideone.com/pEVLy4
на
http://ideone.com/cReNkM
Чтобы не лазить по ссылкам выше, то код таков:
на В итоге заменили 2 строки похожего кода на 2 строки не похожего.
LispGovno 26.11.2012 17:53 # 0
LispGovno 26.11.2012 19:12 # −2
Ты вот покажи на реальном примере, как убрать копипасту:
Вот типичный пример:
http://ideone.com/Fi3Uqv
Предложи способ убрать копипасту не считая случая введения отдельной функции извлечения, которая далеко не всегда пригодна для извлечения. Для полноты картины, представь, что функции f очень сложные для случая KoKo и KoKoKo.
Как видишь очевидные варианты не работают, тк хаскель заставляет копипастить:
http://ideone.com/IQlDov
http://ideone.com/UWFdtH
bormand 26.11.2012 19:39 # +2
LispGovno 26.11.2012 19:42 # 0
Ну пример маленький, чтобы не отвлекать от сути. То есть я правильно понимаю, убрать эту копипасту хацкель не позволяет?
bormand 26.11.2012 19:47 # +1
Эту - нет.
> Для полноты картины, представь, что функции f очень сложные для случая KoKo и KoKoKo.
Были бы сложные и одинаковые - нужно было бы вынести в отдельную функцию (что впрочем тут и сделано, show это сложная функция).
LispGovno 26.11.2012 19:43 # 0
Да это понятно, но это лишь от убогости мышления копипастера. Любой вменяемый человек написал бы вменяемо.
Fai 24.11.2012 07:43 # 0
Конечно больше. Я плохо хаскель знаю.
> А еще ИИ будет слабее и медленее
Естественно
> Ибо смотрю в код а там какое-то очевидное гогно и копипаст.
Я просто как начинаю гнаться за красивым кодом в итоге все стираю и переписываю. Так что решил сразу писать похуйкак.
И да, bormand уже поправил код.
bormand 23.11.2012 11:29 # +1
Fai 23.11.2012 12:00 # 0
bormand 23.11.2012 12:01 # +1
http://ideone.com/dlZZCH
http://ideone.com/lSdwuQ
Fai 23.11.2012 12:25 # +1
guest 23.11.2012 14:50 # 0
https://bitbucket.org/dibblego/haskell-course L03
guest 23.11.2012 14:52 # 0
Fai 23.11.2012 14:53 # −1
Концептуально это отделные символы. Такая запись будет запутывать.
guest 23.11.2012 14:57 # +3
Fai 23.11.2012 15:21 # −1