Theta
хаскельский
Alexander
ну я не знаю что такое record хаскельный
Alexander
есть data
Theta
O_o
Theta
Named fields
Theta
часть юзают как я понял, чтобы создать данные о юзере том же например
Alexander
у нас есть ADT для adt можно делать named fields
Alexander
наличие или их отсутсвие ни о чем не говорит
Theta
ага
Theta
ты прав
Alexander
так могло бы быть
data Maybe = Nothing | Just { fromJust :: a}
Alexander
в целом отличие структур лежит в том, могут ли для них быть разумные Foldable/Traversable/Applicative
Alexander
если да, то желательно чтобы структура была ленивой
Theta
ясно)
Alexander
ну просто это не до конца понятно, видимо имелось ввиду структура с 1 конструктором и именованными полями
Theta
ага
Oleg
Не знаю, у кого как, но когда дело доходит до хакерранка и динпрог, для меня Map / IntMap очень даже control
Oleg
А то и Array
Theta
Ну... с учётом того что Map Foldable, Traversible, то почему бы и нет?
Theta
и интмап
Alexander
Map/IntMap - контрол конечно
Alexander
и Array/Vector
Alexander
в вот с Set так не прокатывает уже, т.к. у него более сложная структура, в смысле ограничений
Leonid 🦇
Мутное деление
Alexander
да, там есть сложности
Alexander
с того, что мы в haskell?
Alexander
т.е. я не вижу ничего странного с тем, что её учитывать
кана
с того, что мы в haskell?
по моему в таком случае нужно уточнять, что сравнение с хаскельным списком, я во время прочтения вопроса не воспринимал "список" как "хаскельный список" и бесконечность тоже не учитывал, очевидно
Leonid 🦇
@qnikst Async.waitEitherCatchCancel это как race же, да? т.е. грохнет второй тред? А то я что-то запутался
Cheese
на собеседованиях часто задают некорректные/неполные задачи, чтобы проверить умение определять корректность/полноту постановки задачи
Alexander
Alexander
Alexander
Alexander
вот тут например
Alexander
>Есть тип Test Int32 (List Char). Могу ли я распаковать тип List?
Alexander
предположим, что там [Char]
кана
https://gist.github.com/klapaucius/1393078 - что это дает?
Alexander
let test = Test 1 (let x = x in x)
Cheese
что есть строгий список? для списка можно придумать промежуточные строгости — только по позвоночнику, только по элементам
Theta
Я думаю он имел в виду свою реализацию списка типа
Alexander
удачи в распаковке
кана
Alexander
какие?
Alexander
fmap f . fmap g /= fmap (f.g) или fmap id = id ?
кана
F f . F g = F (f . g)
Alexander
пример?
Alexander
он вроде должен следовать из fmap id = id а он выполняется
Alexander
Oleg
\petrosyan_mode_on
это смотря в какую категорию функтор
Theta
с точки зрения смысла
Oleg
Alexander
Prelude> data Test = Test Int [Char] deriving (Show)
Prelude> let t = Test 1 (let x = x in x)
Prelude> t
Test 1 "^CInterrupted.
Oleg
аааа не
Alexander
это ничем не отличается от data Test' = Test Int (List Char), если в List бесконечный список
Theta
Alexander
и там и там у нас боттом
Theta
удачи в распоковке того, что не вычисляется?
Theta
потому чт отам боттом?
Alexander
смотри в вопросе интервьюера что я процитировал он спрашивал можешь ли ты распаковать лист
Alexander
видимо предполагая ответ, что не можешь
Theta
Это уже по почте переписка с ним... не является интервью
Theta
Alexander
так вот я привел пример того, что даже с ленивым списком - не можешь
Alexander
т.е. вопрос несколько странный
Theta
А... ну... странный да. размытый
Theta
вот и я про что
Oleg
пример?
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
Впрочем... всё-таки я смог)
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
"
Theta
Или мы друг друга не поняли?
Theta
товарищ @qnikst )
kake
как мне изменить так чтоб слова в ворде не разрывались?
кана
Theta
товарищ @qnikst )
короче, @qnikst я ему ответил что можем. В случае ленивой имплементации Test мы делаем это в любом случае, если List вычислен, а в случае неленивой... надо чтобы вычислено было всё. Честно не уверен что он хотел получить этим коротким вопросом но возможно это
Theta
Ну... тип данных то извлёкся.
Alexander
тип это на этапе компиляции