komar 25.12.2012 17:12 thinkpad

Блядь, посмотрите на него: http://juick.com/LavirTheWhiolet/2144782

1. Voker57 25.12.2012 17:13 nbl-desktop

все правильно написал

2. komarVoker57 /1 25.12.2012 17:13 thinkpad

Блядь.

3. gdsVoker57 /1 25.12.2012 17:22

O RLY777

4. komargds /3 25.12.2012 17:27 thinkpad

Типичный вокероаргумент: #tfinhe

5. gdskomar /4 25.12.2012 17:28

ок!
Мне вообще было бы незападло рассказать, если "в коня корм", а не "бисер перед".

6. Voker57gds /5 25.12.2012 17:29 nbl-desktop

расскажи мне, как -. удобнее тайпклассов

7. komargds /5 25.12.2012 17:29 thinkpad

Ну вокер считает, что язык должен быть ЧИСТЫМ, причем ЧИСТОТА обратно пропорциональна количеству букв, которое приходится набирать.

8. komarkomar /7 25.12.2012 17:31 thinkpad

Олсо, рекомендую ему попробовать k.

9. Voker57komar /8 25.12.2012 17:32 nbl-desktop

проприетарная параша какая-то

10. komarVoker57 /9 25.12.2012 17:32 thinkpad

Тогда j.

11. 4da 25.12.2012 17:33 BitlBee

поднасрал ему в цоменты.

12. gdsVoker57 /6 25.12.2012 17:35

рассказываю. Удобство тут в том, что потом не приходится чесать репу и думать "КОКОКОВА ХУЯ ТОЧНОСТЬ ТЕРЯЕТСЯ". В окамле (a + b) — b = a, но в общем случае (a +. b) -. b <> a.
Если же это не нужно, и похуй, во что там отрезолвится "-" — брать pa_do либо Float.(a — b) либо let open Float in a + b / c.
В чом проблемы?

13. komar4da /11 25.12.2012 17:35 thinkpad

До синтаксиса доебываться нужно, но не так, как вокер.
Вот меня проеб end’ов в ruby уже просто доебал, я не могу на нем больше программировать. Один проеб охуительнее другого, блять. Синтакс еррор, ошибка в конце тысячестрочного файла. Чего, блять? Где искать? Вообще охуеть.

14. gds4da /11 25.12.2012 17:37

грамотно.

15. komargds /12 25.12.2012 17:37 thinkpad

> let open Float in a + b / c.
чо

17. komargds /14 25.12.2012 17:39 thinkpad

Тхесз на последнем MskHUG рассказывал, как он нахуярил Map’ов на простых интах на x86_64, и все тормозит GC. А потом он переделал все на int32, и все перестало тормозить. Я успокоил себя тем, что чего-то не понимаю.

18. Voker57gds /16 25.12.2012 17:39 nbl-desktop

а с интами будет работать?

19. gdskomar /17 25.12.2012 17:39

не догнал мыслю.

20. komargds /16 25.12.2012 17:40 thinkpad

Нуоще.

21. gdsVoker57 /18 25.12.2012 17:40

напиши соответствующий модуль Int и будет. Вплоть до Float.(12.34 + of_int Int.(12 + 34)).

22. Voker57gds /21 25.12.2012 17:41 nbl-desktop

Че? я могу получить функцию + которая будет работать и с int и c float?

23. komargds /19 25.12.2012 17:42 thinkpad

А, блять, он там просто про ограниченность массивов говорит. Да так, ничего.
Я думал, что он на проеб одного бита в интах жалуется.

24. gdsVoker57 /22 25.12.2012 17:43

нет. Это значения разных типов, и "+" у них принципиально разный. см. /12

25. 4dagds /12 25.12.2012 17:43 BitlBee

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

26. Voker57gds /24 25.12.2012 17:44 nbl-desktop

значит так как с тайпклассами нельзя сделать. или, может, ПРЕПРОЦЕССОРОМ

27. komarVoker57 /26 25.12.2012 17:45 thinkpad

ОБЪЕКТЫ ЗНАЕШ

28. gds4da /25 25.12.2012 17:46

потому что в окамле функция это функция, а не хуйня, требующая "словаря", rtti и прочего.
Функция также связана с конкретным куском кода в программе, типы же стираются. Это полезно для производительности.
Кроме того, выведи-ка тип выражения "fun x y → x + y".

29. gdsVoker57 /26 25.12.2012 17:46

"так, как с тайпклассами" и не нужно делать. Мне они не нравятся.

30. Voker57gds /28 25.12.2012 17:47 nbl-desktop

(Num A) => A → A → A — :cf

31. 4daVoker57 /30 25.12.2012 17:47 BitlBee

неужто в окмале нет экзистенциалов, такое не заработает?

32. gdsVoker57 /30 25.12.2012 17:48

тайпклассы ненужны.

33. Voker57gds /32 25.12.2012 17:48 nbl-desktop

а ИНТЕРФЕЙСЫ?

34. gds4da /31 25.12.2012 17:48

заработает конечно. Только нахуй нужно.

35. gdsVoker57 /33 25.12.2012 17:48

интерфейсы чего именно?

36. 4dagds /34 25.12.2012 17:49 BitlBee

как это нахуй. ничего общего между целочисленным и флоатовым сложением не находишь?

38. gds4da /36 25.12.2012 17:50

ничего. Типы данных разные, семантика разная, reasoning про сложение тоже разный (из разной семантики вытекает).

39. gdsVoker57 /37 25.12.2012 17:51

эти — нужны и обязательны, ящитаю.

40. Voker57gds /39 25.12.2012 17:52 nbl-desktop

а чем они отличаются от тайпклассов?

41. komar 25.12.2012 17:54 thinkpad

Пиздец, посоны, я хую с вас, стоило сказать, что какой-то там язык обсирают, так все, пиздец, сразу онлаен-дискуссия, кококо, интерес. Нахуй так жить? Выйдите на улице уже!

42. Voker57komar /41 25.12.2012 17:54 nbl-desktop

А там языки обсирают?

43. komarVoker57 /42 25.12.2012 17:55 thinkpad

Нет, просто вспомнил про #tfgeif/52

44. Voker57komar /43 25.12.2012 17:55 nbl-desktop

ну дык, и я тоже

45. gdsVoker57 /40 25.12.2012 17:57

тем, что интерфейсы — это не тайпклассы. А именно:
1. если есть конкретные функция/модуль/объект с конкретным интерфейсом, всегда известно, где смотреть его реализацию. В случае тайпклассов — не всегда известно, так как какой-нибудь левый модуль может переопределять инстанс.
2. тайпклассы не позволяют стирание типов: при их использовании от типов в общем случае остаётся "довесок" — рантайм-часть, соответствующая сигнатуре "(Num A)" (словарь штоле). Код получается медленнее как из-за косвенного вызова, так и из-за хранения-передачи дополнительного аргумента (словаря).
3. идея "щас по типу достанем значение" — сама по себе кривая, но почему-то продолжают лепить newtype, чтобы внезапно типы стали разными, чтобы подставить разные инстансы. Костыли.

46. gdskomar /41 25.12.2012 17:58

ОБОСРИТЕ МНЕ ЯЗЫК

47. Voker57gds /45 25.12.2012 18:00 nbl-desktop

1. Зато невозможно определить интерфейс для уже определенного модуля. Это важнее.
2. СКОРАСТЬ
3. Че?

48. gdsVoker57 /47 25.12.2012 18:03

1. Че7
2. СКОРАСТЬ!
3. Как давно х-ь разобрался с разными тайпклассами для строк vs списков символов? Раньше же была пичалька — если [Char], то брался тайпкласс для списков (то ли наоборот, для строк), но точно какой-то один. Да и вообще, вопорос "Че?" тут — как бы характерный. Уж я насколько не х-ист, а это знаю...

49. artsgds /46 25.12.2012 18:03 Psi+

Похапе говно, ну.

50. gdsarts /49 25.12.2012 18:04

мой язык до сих пор чист, как и ротовая полость. Спробуй ще!

51. Voker57gds /48 25.12.2012 18:06 nbl-desktop

1. Как ты определишь свой собственный интерфейс для других объектов?
2. Хочешь СКОРАСТИ — пиздуй на Си.
3. Это проблемы реализации.

52. komarVoker57 /51 25.12.2012 18:06 thinkpad

2. Анус себе попиздуй.

53. gdsVoker57 /51 25.12.2012 18:13

1. очень просто. Как минимум — заверну в другой модуль/объект и выставлю наружу то, что надо. В некоторых случаях достаточно ограничить интерфейс либо просто дописать в него что-то, это ещё проще.
2. хочешь ПИРИГУЗКИ АПИРАТАРОВ — пиздуй в C++.
3. это проблемы тайпклассов, вызвавшие проблемы реализации тайпклассов. NEWTYPE ОКОКОК.

54. Voker57gds /53 25.12.2012 18:14 nbl-desktop

1. К0СTbIЛN
2. Я пиздую в руби.
3. Понятное дело, что если нихуя не реализовать то и проблем реализации не будет.

55. komarVoker57 /54 25.12.2012 18:15 thinkpad

2. С десятью RPS’ами на 6 инстансах, ага. И с undefined method `huipizda' for nil:NilClass на продакшн-сайте.

56. Voker57komar /55 25.12.2012 18:16 nbl-desktop

ничего не поделаешь, зато не надо лишние кавычки писать!

57. komarVoker57 /56 25.12.2012 18:16 thinkpad

Вокеровыбор языка.

58. 4dakomar /57 25.12.2012 18:19

язык, как и залупа, должен быть красив.

59. komar4da /58 25.12.2012 18:20 thinkpad

ВО ПЕРВЫХ СИМВОЛЫ ЭТО ПРОСТО КРАСИВО

60. gdsVoker57 /54 25.12.2012 18:20 umodni7392A553

1. зато отсутствие "перегрузки" и ВНЕЗАПНОГО переопределения.
2.
3. понятное дело, что если реализовывать кривые концепции, то проблемы реализации будут.

61. Voker574da /58 25.12.2012 18:20 nbl-desktop

красивой залупе — красивый язык!

62. 4daVoker57 /51 25.12.2012 18:20

какамль хорош уже тем, что на нем можно набыдлить код, который будет работать со скоростью си.

63. komargds /60 25.12.2012 18:21 thinkpad

2. Блядь, до слез.

64. gds4da /62 25.12.2012 18:21

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

65. 4dagds /64 25.12.2012 18:22 BitlBee

static typing is false sense of security!

66. gds4da /65 25.12.2012 18:24

а дело не только в static (я вон для личных нужд вполне dynamic использую изредка), а в выразительности типов, в некоторых "минимальных гарантиях", которых динамикой добиться сложно всяко.

Do you really want to delete ?