0xd34df00d 01.01.2011 09:38 Azoth_primary

Как писать на хаскеле Real World-приложения С ТАКИМ-ТО УНИКОДОМ?

Recommended by: @analizer
1. werehuman 01.01.2011 09:38 lithium

подписался

2. analizer 01.01.2011 09:39 talkonaut-iphone_5.88_cbfc47bb

а что? Он там ещё хуже чем в эрланге?

3. Rayslava 01.01.2011 09:40 Home

Хаскель не для realworld'ов, а для матанов. Так что не зуди.

4. 0xd34df00d → analizer /2 01.01.2011 09:40 Azoth_primary

Я не знаю, какой он там в эрланге.

5. werehuman → 0xd34df00d /4 01.01.2011 09:40 lithium

такой же

6. werehuman → werehuman /5 01.01.2011 09:40 lithium

хотя, в эрланге немного лучше

7. 0xd34df00d → Rayslava /3 01.01.2011 09:41 Azoth_primary

Я грезил ботом на хаскеле в свое время, который бы сидел в конфочке и делал что-нибудь матанное, но идея зафейлилась от отсутствия уникода. Для русского языка в библиотеке XMPP костыли еще были, а вот на никах с нелатинскими и некириллическими символами все фейлилось.

8. 0xd34df00d → werehuman /6 01.01.2011 09:41 Azoth_primary

Это, гм, печально.

9. analizer 01.01.2011 09:43 talkonaut-iphone_5.88_cbfc47bb

фп нужно только ддля фапа на нечитабельность результирующего кода, sad butt rue

10. werehuman → 0xd34df00d /8 01.01.2011 09:44 lithium

в эрланге вообще нету типа "строка". Любая строка — список целых чисел (как char[], только вроде бы там аналог Integer, боюсь соврать).

2> [70,71,72,73].
"FGHI"

11. werehuman → analizer /9 01.01.2011 09:45 lithium

слишком субъективное мнение для того, чтобы быть правдой

12. 0xd34df00d → analizer /9 01.01.2011 09:45 Azoth_primary

Грустная истинная задница, ок.
Олсо, ниасиляторство ИТТ!

13. analizer → werehuman /10 01.01.2011 09:46 talkonaut-iphone_5.88_cbfc47bb

это не есть отличительная особенность эрланга, в питоне строка это тоже лист чисел, и даже, не побоюсь этого слова, в плюсцах строка — это массив чисел

14. 0xd34df00d → analizer /13 01.01.2011 09:46 Azoth_primary

А в хаскеле String — [Char], так что да, и там.

15. werehuman → analizer /13 01.01.2011 09:47 lithium

> в питоне строка это тоже лист чисел
Гхм. ГХМ. Я этого не видел.
> плюсцах строка — это массив чисел
Гхм. Я надеюсь, ты про char *, а не про std::string. Тогда да, но опять же, я сказал в чем различия.

16. 0xd34df00d → werehuman /15 01.01.2011 09:48 Azoth_primary

А внутри std::string обязана быть char*. U fail.

17. werehuman → 0xd34df00d /16 01.01.2011 09:48 lithium

Что значит я фейл? Я не говорил, что его там нету. Бля, оно внутри, а не оно целиком!

18. analizer → werehuman /11 01.01.2011 09:49 talkonaut-iphone_5.88_cbfc47bb

ну а какие серьёзные приложения из широко распространённых на функциональном языке были написаны? Yaws, какой-то там редактор 3д графики и всё?

19. werehuman → analizer /18 01.01.2011 09:49 lithium

ejabberd, рендерер формул на педивикии — первое, что вспомнилось.

20. 0xd34df00d → analizer /18 01.01.2011 09:49 Azoth_primary

Хаскель просто никто ниасилил, и это хорошо.

21. werehuman → analizer /18 01.01.2011 09:50 lithium

а, еще. maxima, festival

22. Rayslava → werehuman /21 01.01.2011 10:04 Home

maxima? Она же на лиспе

23. analizer → Rayslava /22 01.01.2011 10:06 talkonaut-iphone_5.88_cbfc47bb

мы про функциональные языки вообще

24. Rayslava → analizer /23 01.01.2011 10:06 Home

Лисп — не функциональный.
А если уж на то пошло — то впишите сюда еще и emacs

25. werehuman → Rayslava /24 01.01.2011 10:06 lithium

ну тогда функциональный один лишь хаскел. А ооп — только смаллтолк

26. Rayslava → werehuman /25 01.01.2011 10:07 Home

Нууу, да.

27. werehuman → Rayslava /26 01.01.2011 10:07 lithium

так что нахуц

28. Rayslava → werehuman /27 01.01.2011 10:08 Home

Ну блджад, не может быть в функциональном языке (loop for i from 1 to 10 do () )
:)

29. Rayslava → werehuman /27 01.01.2011 10:09 Home

Алсо, еще сеймество ML функциональное, вроде

30. werehuman → Rayslava /28 01.01.2011 10:09 lithium

да?
main = loopM_ [1..10] (\x → putStrLn $ "Line #" ++ show x)

31. Rayslava → werehuman /30 01.01.2011 10:09 Home

Что это за бред? :)

32. werehuman → Rayslava /31 01.01.2011 10:10 lithium

хм, забыл где там loop лежит. На тебе
main = mapM_ (\x → putStrLn $ "Line #" ++ show x) [1..10]

33. Rayslava → werehuman /32 01.01.2011 10:11 Home

Пиздец какой-то :)
Это хаскель? В таком случае я рад, что остановился на лиспе...

34. werehuman → Rayslava /33 01.01.2011 10:11 lithium

это циклы в хаскелле.

35. Rayslava → werehuman /34 01.01.2011 10:12 Home

А еще в лиспе есть динамическая типизация и сайд-эффекты.

36. werehuman → werehuman /34 01.01.2011 10:12 lithium

а кто тебя заставляет юзать (do ...) в лиспе?

37. werehuman → Rayslava /35 01.01.2011 10:12 lithium

заметь, в /32 тоже есть сайд-эффекты

38. Rayslava → werehuman /36 01.01.2011 10:12 Home

А я и не юзаю. Я оберточки юзаю.

39. werehuman → Rayslava /38 01.01.2011 10:12 lithium

все время через хвостовую рекурсию?

40. Rayslava → werehuman /37 01.01.2011 10:13 Home

Ну, значит, ваш хаскель тоже не труЪ-фяп.

41. Rayslava → werehuman /39 01.01.2011 10:13 Home

Нет. loop — это тоже обертка поверх do

42. werehuman → Rayslava /41 01.01.2011 10:16 lithium

> (loop for x in ...)
Нахуя тебе лисп?

43. Rayslava → werehuman /42 01.01.2011 10:17 Home

Удобен. Опять же няшномакросы с прямым доступом к AST.
А императивное программирование я все равно люблю больше функционального.

44. werehuman → Rayslava /43 01.01.2011 10:19 lithium

> няшномакросы
ты про вот этот пиздец? http://cl-cookbook.sourceforge.net/macro...
Благодаря твоим макросам твой sbcl будет чаще компилить.

45. Rayslava → werehuman /44 01.01.2011 10:20 Home

А в чем пиздец-то?
При интерактивной разработке оно просто на ура пишется.

46. werehuman → Rayslava /45 01.01.2011 10:20 lithium

в том, что через месяц ты глянешь в свой код и обосрешься

47. Rayslava → werehuman /46 01.01.2011 10:21 Home

Да нифига. Там всё просто. Ну и камменты никто не отменял.

48. werehuman → Rayslava /47 01.01.2011 10:21 lithium

писать просто, да

49. Rayslava → werehuman /48 01.01.2011 10:21 Home

Перл я тоже люблю, да. ^_^

50. werehuman → Rayslava /49 01.01.2011 10:21 lithium

все, я с тобой не разговариваю больше

51. Rayslava → werehuman /50 01.01.2011 10:24 Home

:(
Ну вот. Всегда так...

52. werehuman → Rayslava /51 01.01.2011 10:24 lithium

перл — это вне всяких рамок

53. Rayslava → werehuman /52 01.01.2011 10:25 Home

А он-то чем тебе не угодил?
Очень выразительный язык под запись...

54. werehuman → Rayslava /53 01.01.2011 10:25 lithium

не-не-не, дэвид блейн

55. 0xd34df00d → Rayslava /33 01.01.2011 10:43 Azoth_primary

Это хаскель, а что?

56. 0xd34df00d → werehuman /34 01.01.2011 10:43 Azoth_primary

Некоторые виды рекурсии эквивалентны циклам. СЮРПРАЙЗ.

57. 0xd34df00d → Rayslava /40 01.01.2011 10:44 Azoth_primary

Ъ-фяп тогда не мог бы взаимодействовать с внешним миром. IO-монаду почти всегда можно свести к одному только мейну, который бы дергал лишь pure-код.

58. Rayslava → 0xd34df00d /57 01.01.2011 10:45 Home

<trololo-mode> А зачем прекрасному чистому функциональному коду взаимодействовать с жестокой реальностью? </trololo-mode>

59. ulidtko → 0xd34df00d /57 01.01.2011 10:56 lunatic asylum

да ну ладно. Любая программа вычисляет какую-то функцию. Запишите на этом своем хаскеле эту функцию, и вычисляйте её на произвольных входах снаружи. Всё там красиво и реалистично.

60. 0xd34df00d → ulidtko /59 01.01.2011 11:00 Azoth_primary

Да. Поэтому IO-монада ограничивается main'ом и чуть-чуть вглубь. Остальное чисто. Что тебя смущает?

61. ulidtko → 0xd34df00d /60 01.01.2011 11:08 lunatic asylum

смущает, что «Ъ-фяп не может взаимодействовать с внешним миром». Вполне себе может. (олсо неебу IO монады и монады вообще)

62. 0xd34df00d → ulidtko /61 01.01.2011 11:16 Azoth_primary

Поеби монады )

63. analizer → 0xd34df00d /62 01.01.2011 11:17 Psi+

кто родится если улидко выебет монады? ... нет, не хочу этого знать

64. 0xd34df00d → analizer /63 01.01.2011 11:17 Azoth_primary

Я поебал монады, никто не родился :(

65. Rayslava → 0xd34df00d /64 01.01.2011 11:18 Home

Ты просто еще не все знаешь. Скоро на тебя повесят алименты.

66. 0xd34df00d → Rayslava /65 01.01.2011 11:19 Azoth_primary

Но кто?

Do you really want to delete ?