
Alexander
03.04.2018
08:02:24
с того, что мы в haskell?
т.е. я не вижу ничего странного с тем, что её учитывать

kana
03.04.2018
08:10:36
с того, что мы в haskell?
по моему в таком случае нужно уточнять, что сравнение с хаскельным списком, я во время прочтения вопроса не воспринимал "список" как "хаскельный список" и бесконечность тоже не учитывал, очевидно

Leonid
03.04.2018
08:11:55
@qnikst Async.waitEitherCatchCancel это как race же, да? т.е. грохнет второй тред? А то я что-то запутался

Google

Yuriy
03.04.2018
08:11:57
на собеседованиях часто задают некорректные/неполные задачи, чтобы проверить умение определять корректность/полноту постановки задачи

Alexander
03.04.2018
08:13:14
вот тут например
>Есть тип Test Int32 (List Char). Могу ли я распаковать тип List?
предположим, что там [Char]

kana
03.04.2018
08:15:28
https://gist.github.com/klapaucius/1393078 - что это дает?

Alexander
03.04.2018
08:15:33
let test = Test 1 (let x = x in x)

Yuriy
03.04.2018
08:15:35
что есть строгий список? для списка можно придумать промежуточные строгости — только по позвоночнику, только по элементам

Theta
03.04.2018
08:15:35
Я думаю он имел в виду свою реализацию списка типа

Alexander
03.04.2018
08:15:37
удачи в распаковке

kana
03.04.2018
08:15:57

Google

Alexander
03.04.2018
08:16:08
какие?
fmap f . fmap g /= fmap (f.g) или fmap id = id ?

kana
03.04.2018
08:16:28
F f . F g = F (f . g)

Alexander
03.04.2018
08:16:37
пример?
он вроде должен следовать из fmap id = id а он выполняется

Theta
03.04.2018
08:16:51

Alexander
03.04.2018
08:17:04

Oleg
03.04.2018
08:17:05
\petrosyan_mode_on
это смотря в какую категорию функтор

Theta
03.04.2018
08:17:06
с точки зрения смысла

Oleg
03.04.2018
08:17:35

Alexander
03.04.2018
08:17:47
Prelude> data Test = Test Int [Char] deriving (Show)
Prelude> let t = Test 1 (let x = x in x)
Prelude> t
Test 1 "^CInterrupted.

Oleg
03.04.2018
08:18:14
аааа не

Alexander
03.04.2018
08:18:19
это ничем не отличается от data Test' = Test Int (List Char), если в List бесконечный список

Theta
03.04.2018
08:18:59

Alexander
03.04.2018
08:19:00
и там и там у нас боттом

Theta
03.04.2018
08:19:07
удачи в распоковке того, что не вычисляется?
потому чт отам боттом?

Alexander
03.04.2018
08:19:36
смотри в вопросе интервьюера что я процитировал он спрашивал можешь ли ты распаковать лист
видимо предполагая ответ, что не можешь

Theta
03.04.2018
08:19:57
Это уже по почте переписка с ним... не является интервью

Google

Theta
03.04.2018
08:20:15

Alexander
03.04.2018
08:20:22
так вот я привел пример того, что даже с ленивым списком - не можешь
т.е. вопрос несколько странный

Theta
03.04.2018
08:21:15
А... ну... странный да. размытый
вот и я про что

Oleg
03.04.2018
08:22:27
пример?
newtype Communism a = Communism{ getCommunism:: a}
instance Eq (Communism a) where
_ == _ = True
instance Ord (Communism a) where
_ `compare`_ = EQтогда
Set.map getCommunism . Set.map Communism =/= Set.map (getCommunism . Communism)

Theta
03.04.2018
08:22:57
Впрочем... всё-таки я смог)
Prelude> data Test = Test Int [Char] deriving (Show)
Prelude> let t = Test 1 (let x = x in x)
Prelude> let Test _ a = t
Prelude> a
"
Или мы друг друга не поняли?
товарищ @qnikst )

kake
03.04.2018
08:25:49

kana
03.04.2018
08:27:43

Theta
03.04.2018
08:30:08
товарищ @qnikst )
короче, @qnikst я ему ответил что можем. В случае ленивой имплементации Test мы делаем это в любом случае, если List вычислен, а в случае неленивой... надо чтобы вычислено было всё. Честно не уверен что он хотел получить этим коротким вопросом но возможно это

Alexander
03.04.2018
08:30:34

Theta
03.04.2018
08:30:47
Ну... тип данных то извлёкся.

Alexander
03.04.2018
08:30:59
тип это на этапе компиляции

Theta
03.04.2018
08:31:00
даже начал выводиться на экран...
и вычисляться

Alexander
03.04.2018
08:31:05
в рантайме типов нету

Theta
03.04.2018
08:31:19
то что он не вычисляется уже не мои проблемы

Google

Alexander
03.04.2018
08:31:50
не начал он это show сработало
я не понимаю этого утверждения
типы стираются System DC ещё не запилили

Theta
03.04.2018
08:32:35
ну да, шоу сработало. Значит на вход ему мы что? ЧТо-то подали, ленивое. Что он начал вычислять так как потребовался результат. СЛедовательно извлечено

Alexander
03.04.2018
08:33:22
нет конечно

Theta
03.04.2018
08:33:53
если бы было не извлечено, даже кавычка бы не вывелась.
Извлечение это и есть чисто операия на д типами

Alexander
03.04.2018
08:34:10
ну или в такой странной терминологии и строгий список извлекается

Theta
03.04.2018
08:34:10
ладно уже философия какая-то
Получается так, лол)
Ну ок, если считать извлечением не операцию над типами, а получение готового результата, то ок, не извлекаем.
но тут я уже сомневаюсь в правильности того или иного понимания термина извлечение. Поэтому на всякий случай в ответе уточнил про конечность списка

Alexander
03.04.2018
08:36:02
+

Theta
03.04.2018
08:36:12
что это нормальный список а не... wtf ?

Alexander
03.04.2018
08:36:19

Theta
03.04.2018
08:36:33
не получаем)
а над типами поколдовали вполне... ;D
Ладно, давай сойдёмся что очередной вопрос странный?
?
неполный

Google

Alexander
03.04.2018
08:38:00
вопрос странный, т.к. при всех определениях извлечения строгие и ленивые списки имеют одинаковые свойства

Theta
03.04.2018
08:38:38
ну да, поэтому я говорил только про строгость и ленивость Test
свойства ленивости и строгости Test влияют на извлекаемость в разных условиях...

Alexander
03.04.2018
08:39:13
это тоже ничего не меняет

Theta
03.04.2018
08:39:34
Ну как? Если Int32 не вычислено, то... разве не хрен ты что извлечёшь?
т. к. Test даже возращён не будет
В случае СТРОГОГО Test
пардон
В случае ленивого — пожалуйста)

Alexander
03.04.2018
08:40:48
я привел пример, где не будет
let x = x in x передай, и привет

Theta
03.04.2018
08:41:15
я понял)
но не буду повторяться...
чёт он совсем замолчал

Alexander
03.04.2018
08:42:27
если поле строгое, то и там и там мы может не вернуть Test

kana
03.04.2018
08:42:30

Alexander
03.04.2018
08:42:36
если не строгое и там и там вернем

Leonid
03.04.2018
08:42:45
как красивее переписать ?
go `catch` (\e -> handle e $> succ i) `catch` (\e -> onHttpE e $> succ i)

Alexander
03.04.2018
08:43:00
catches?