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. 0xd34df00danalizer /2 01.01.2011 09:40 Azoth_primary

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

5. werehuman0xd34df00d /4 01.01.2011 09:40 lithium

такой же

6. werehumanwerehuman /5 01.01.2011 09:40 lithium

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

7. 0xd34df00dRayslava /3 01.01.2011 09:41 Azoth_primary

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

8. 0xd34df00dwerehuman /6 01.01.2011 09:41 Azoth_primary

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

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

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

10. werehuman0xd34df00d /8 01.01.2011 09:44 lithium

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

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

11. werehumananalizer /9 01.01.2011 09:45 lithium

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

12. 0xd34df00danalizer /9 01.01.2011 09:45 Azoth_primary

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

13. analizerwerehuman /10 01.01.2011 09:46 talkonaut-iphone_5.88_cbfc47bb

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

14. 0xd34df00danalizer /13 01.01.2011 09:46 Azoth_primary

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

15. werehumananalizer /13 01.01.2011 09:47 lithium

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

16. 0xd34df00dwerehuman /15 01.01.2011 09:48 Azoth_primary

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

17. werehuman0xd34df00d /16 01.01.2011 09:48 lithium

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

18. analizerwerehuman /11 01.01.2011 09:49 talkonaut-iphone_5.88_cbfc47bb

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

19. werehumananalizer /18 01.01.2011 09:49 lithium

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

20. 0xd34df00danalizer /18 01.01.2011 09:49 Azoth_primary

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

21. werehumananalizer /18 01.01.2011 09:50 lithium

а, еще. maxima, festival

22. Rayslavawerehuman /21 01.01.2011 10:04 Home

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

23. analizerRayslava /22 01.01.2011 10:06 talkonaut-iphone_5.88_cbfc47bb

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

24. Rayslavaanalizer /23 01.01.2011 10:06 Home

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

25. werehumanRayslava /24 01.01.2011 10:06 lithium

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

26. Rayslavawerehuman /25 01.01.2011 10:07 Home

Нууу, да.

27. werehumanRayslava /26 01.01.2011 10:07 lithium

так что нахуц

28. Rayslavawerehuman /27 01.01.2011 10:08 Home

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

29. Rayslavawerehuman /27 01.01.2011 10:09 Home

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

30. werehumanRayslava /28 01.01.2011 10:09 lithium

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

31. Rayslavawerehuman /30 01.01.2011 10:09 Home

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

32. werehumanRayslava /31 01.01.2011 10:10 lithium

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

33. Rayslavawerehuman /32 01.01.2011 10:11 Home

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

34. werehumanRayslava /33 01.01.2011 10:11 lithium

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

35. Rayslavawerehuman /34 01.01.2011 10:12 Home

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

36. werehumanwerehuman /34 01.01.2011 10:12 lithium

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

37. werehumanRayslava /35 01.01.2011 10:12 lithium

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

38. Rayslavawerehuman /36 01.01.2011 10:12 Home

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

39. werehumanRayslava /38 01.01.2011 10:12 lithium

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

40. Rayslavawerehuman /37 01.01.2011 10:13 Home

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

41. Rayslavawerehuman /39 01.01.2011 10:13 Home

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

42. werehumanRayslava /41 01.01.2011 10:16 lithium

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

43. Rayslavawerehuman /42 01.01.2011 10:17 Home

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

44. werehumanRayslava /43 01.01.2011 10:19 lithium

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

45. Rayslavawerehuman /44 01.01.2011 10:20 Home

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

46. werehumanRayslava /45 01.01.2011 10:20 lithium

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

47. Rayslavawerehuman /46 01.01.2011 10:21 Home

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

48. werehumanRayslava /47 01.01.2011 10:21 lithium

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

49. Rayslavawerehuman /48 01.01.2011 10:21 Home

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

50. werehumanRayslava /49 01.01.2011 10:21 lithium

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

51. Rayslavawerehuman /50 01.01.2011 10:24 Home

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

52. werehumanRayslava /51 01.01.2011 10:24 lithium

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

53. Rayslavawerehuman /52 01.01.2011 10:25 Home

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

54. werehumanRayslava /53 01.01.2011 10:25 lithium

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

55. 0xd34df00dRayslava /33 01.01.2011 10:43 Azoth_primary

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

56. 0xd34df00dwerehuman /34 01.01.2011 10:43 Azoth_primary

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

57. 0xd34df00dRayslava /40 01.01.2011 10:44 Azoth_primary

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

58. Rayslava0xd34df00d /57 01.01.2011 10:45 Home

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

59. ulidtko0xd34df00d /57 01.01.2011 10:56 lunatic asylum

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

60. 0xd34df00dulidtko /59 01.01.2011 11:00 Azoth_primary

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

61. ulidtko0xd34df00d /60 01.01.2011 11:08 lunatic asylum

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

62. 0xd34df00dulidtko /61 01.01.2011 11:16 Azoth_primary

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

63. analizer0xd34df00d /62 01.01.2011 11:17 Psi+

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

64. 0xd34df00danalizer /63 01.01.2011 11:17 Azoth_primary

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

65. Rayslava0xd34df00d /64 01.01.2011 11:18 Home

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

66. 0xd34df00dRayslava /65 01.01.2011 11:19 Azoth_primary

Но кто?

Do you really want to delete ?