@haskellru

Страница 343 из 1551
Denis
03.08.2017
13:17:53
оу) https://github.com/mmirman/ImperativeHaskell/blob/master/Main.hs

Denis
03.08.2017
13:26:52
вопрос есть ли у хаскелл такой список? https://github.com/denysdovhan/wtfjs один js девелопер сказал что просто я не знаю на должном уровне хаскелл и что просто я не могу найти такой список

ну и что Диль не шарит что говорит https://twitter.com/smdiehl/status/893039690487648257

Google
? animufag ?
03.08.2017
13:32:42
вопрос есть ли у хаскелл такой список? https://github.com/denysdovhan/wtfjs один js девелопер сказал что просто я не знаю на должном уровне хаскелл и что просто я не могу найти такой список
ну с джс это смешно за счёт того что каждый может понять контр-интуитивность примеров. ну и приведение типов всегда плохая идея.

? animufag ?
03.08.2017
13:33:28
нет, я не знаю

kana
03.08.2017
13:35:12
x :: Void x = undefined

Denis
03.08.2017
13:35:55
Даниил
03.08.2017
13:36:13
Haskell WTF: -- value of an empty type x :: Void x = undefined -- fmap vs map fmap (+ 1) [1, 2, 3] map (+ 1) [1, 2, 3] -- head & tail are unsafe head :: [a] -> a

x :: Void x = undefined
опередил(

? animufag ?
03.08.2017
13:36:59
да, столько unsafe опраций

эксепшоны какие-то

String = [Char]

Даниил
03.08.2017
13:37:35
юзай пакет safe
да в х-ле вообще прелюдию надо кастомную юзать

? animufag ?
03.08.2017
13:38:38
а, ещё раньше были шутки про то что монада не аппликатив. сейчас же тоже полно такого осталось в прелюде?

Google
Даниил
03.08.2017
13:39:48
String = [Char]
расширение есть которое строковые литералы делоет не [Char] а Text вроде

kana
03.08.2017
13:40:07
Ну и моноид не полугруппа

Dmitry
03.08.2017
13:40:51
Самый большой WTF в Haskell за всю мою жизнь: wtf :: a -> (Num b => b) -> a wtf x y = xИ в ghci ghci> wtf 1 ("wat" + "man") 1

? animufag ?
03.08.2017
13:40:56
расширение есть которое строковые литералы делоет не [Char] а Text вроде
делает FromString a вроде и там уже сам определяешь

Даниил
03.08.2017
13:41:04
да, уже прочитал



? animufag ?
03.08.2017
13:41:20
Ну и моноид не полугруппа
ну полугрупп вроде нет в прелюде?

Aleksey
03.08.2017
13:41:36
Уже есть

kana
03.08.2017
13:41:45
Есть

Aleksey
03.08.2017
13:42:15
Но моноид всё ещё полугруппу не требует - чтобы не сломать ничего

Многие "WAT" в хаскеле потому, что по другому было нельзя. А в JS - потому что так вышло

> length ("foo", "bar") 1

Это не WAT, например

kana
03.08.2017
13:47:27
Ох лол, а почему так? Как вообще это работает, если в прелюдии length принимает массив

А, еет

Фолдабл

kana
03.08.2017
13:48:30
Думал про массив, пишу строку

kana
03.08.2017
13:49:45
Отвечай, не читай до конца

Google
Aleksey
03.08.2017
13:51:59
Пара ((a, b)) - ни разу не массив

Это всё питон подгадил в головы неокрепшие. Это после питона "котрежи, это такие массивы, только побыстрее, но длину не меняют"

Если сделать data Pair a = Pair a a deriving (Foldable) то будет > length $ Pair 1 2 2

kana
03.08.2017
13:55:44
Да какой питон, что ты несешь. Я ввожу в хугл, вижу массив, пишу сюда. Потом открываю прелюдию, вижу там фолдабл, пишу об этом тоже. После этого нужно мне сказать об этом ещё раз, а потом и сказать, что я путаю пары и массивы



Denis
03.08.2017
13:59:32
что я делаю не так?



class Foldable t where

Denis
03.08.2017
14:00:16
и вообще пользуйтесь stackage

Vasiliy
03.08.2017
14:00:18
ещё прикол: let five = 2 + 2 where 2 + 2 = 5

kana
03.08.2017
14:00:24
Мне блять еще раз повторить?

Да какой питон, что ты несешь. Я ввожу в хугл, вижу массив, пишу сюда. Потом открываю прелюдию, вижу там фолдабл, пишу об этом тоже. После этого нужно мне сказать об этом ещё раз, а потом и сказать, что я путаю пары и массивы

что я делаю не так?



Ох лол, а почему так? Как вообще это работает, если в прелюдии length принимает массив

А, еет

Фолдабл

Я же говорю, отвечай не читай

Vasiliy
03.08.2017
14:00:49
но это всё слабовато, конечно, по сравнению с js

Google
? animufag ?
03.08.2017
14:00:57
да успокойся

Vasiliy
03.08.2017
14:01:27
> {} + {} '[object Object][object Object]' > {} + {}; NaN

Denis
03.08.2017
14:01:40
kana
03.08.2017
14:01:56
Слушай, ты что, издеваешься?

? animufag ?
03.08.2017
14:02:00
вообще тут все имплаят что у тебя локально развёрнут самый свежий хугл

kana
03.08.2017
14:02:20
Не может человек, прочитав 3 раза, не понять, что он прочитал

Leonid
03.08.2017
14:03:02
подержи пиво

Aleksey
03.08.2017
14:05:09
я думал он просто про свой опыт рассказывает
рассказываю свой опыт общения с питонистами - слошь все считают, что кортеж, это такая коллекция. Причем думают, что везде так

Yuriy
03.08.2017
14:05:16
и Foldable пары, и {} + {} объясняются одинаково: если залезть на шкаф и встать на голову, то становится всё очевидно

? animufag ?
03.08.2017
14:05:40


Aleksey
03.08.2017
14:06:05
эт да

? animufag ?
03.08.2017
14:07:20
http://hackage.haskell.org/package/base-4.6.0.1/docs/Prelude.html#v:length

Denis
03.08.2017
14:08:32
а постарее нельзя?

Aleksey
03.08.2017
14:08:40
Да даже если перейти по ссылке в хугле, то будет length :: t a -> Int внутри class Foldable

Вот показывает хугл неактуальный тип: https://www.haskell.org/hoogle/?hoogle=length

kana
03.08.2017
14:09:26
это какой-то пиздец. Я же ровно об этом же написал 10 минут назад

Aleksey
03.08.2017
14:10:00
http://hayoo.fh-wedel.de/?query=length

Хаю лучше работает, кароч

Google
? animufag ?
03.08.2017
14:10:35
ты серъезно? length делает ограничение на Foldable
просто утверждение получается не совсем истинное

Aleksey
03.08.2017
14:11:25


Index
03.08.2017
14:12:05
Педагогическая ошибка Хаскеля в том, что у кортежей симметричный синтаксис, но несимметричная семантика

Index
03.08.2017
14:12:59
Если бы пара выглядела, например, как b `AnnotatedWith` a а не (a, b), то никто бы не возмущался

Aleksey
03.08.2017
14:15:51
Вот за Either лично мне обидно: все его норовят использовать для обработки ошибок, хотя есть Except

? animufag ?
03.08.2017
14:17:01
А ещё мне кажется он ущемляет левшей

Ну или точнее его инстансы

Misha
03.08.2017
14:21:53
ну так потому что Either намного проще

Alexander
03.08.2017
14:28:00
@astynax Except жирный больно

Aleksey
03.08.2017
14:29:36
ээээ Except, это newtype над Either же

только с явным разделением на throwError и pure

ну так потому что Either намного проще
Вот привыкают к плохому, а потом объясняй людям, что у тебя в конкретном месте не "с ошибкой", а просто сумма

Misha
03.08.2017
14:32:54
я совершенно честно не знал

ну и неудивительно, в общем-то, учитывая статьи типа {8,9,10} ways of handling errors in Haskell и вот это все

с точки зрения освоения это вообще наверное самая слабая и мутная часть языка и библиотек

Страница 343 из 1551