Theta
даже начал выводиться на экран...
Theta
и вычисляться
Alexander
в рантайме типов нету
Theta
то что он не вычисляется уже не мои проблемы
Theta
в рантайме типов нету
позвольте не согласиться. Boxed есть. Если только моя инфа не устарела
Alexander
не начал он это show сработало
Alexander
я не понимаю этого утверждения
Alexander
типы стираются System DC ещё не запилили
Theta
ну да, шоу сработало. Значит на вход ему мы что? ЧТо-то подали, ленивое. Что он начал вычислять так как потребовался результат. СЛедовательно извлечено
Alexander
нет конечно
Theta
если бы было не извлечено, даже кавычка бы не вывелась.
Theta
Извлечение это и есть чисто операия на д типами
Alexander
ну или в такой странной терминологии и строгий список извлекается
Theta
ладно уже философия какая-то
Theta
Получается так, лол)
Theta
Ну ок, если считать извлечением не операцию над типами, а получение готового результата, то ок, не извлекаем.
Theta
но тут я уже сомневаюсь в правильности того или иного понимания термина извлечение. Поэтому на всякий случай в ответе уточнил про конечность списка
Alexander
+
Theta
что это нормальный список а не... wtf 😆
Theta
не получаем)
Theta
а над типами поколдовали вполне... ;D
Theta
Ладно, давай сойдёмся что очередной вопрос странный?
Theta
😆
Theta
неполный
Alexander
вопрос странный, т.к. при всех определениях извлечения строгие и ленивые списки имеют одинаковые свойства
Theta
ну да, поэтому я говорил только про строгость и ленивость Test
Theta
свойства ленивости и строгости Test влияют на извлекаемость в разных условиях...
Alexander
это тоже ничего не меняет
Theta
Ну как? Если Int32 не вычислено, то... разве не хрен ты что извлечёшь?
Theta
т. к. Test даже возращён не будет
Theta
В случае СТРОГОГО Test
Theta
пардон
Theta
В случае ленивого — пожалуйста)
Alexander
я привел пример, где не будет
Alexander
let x = x in x передай, и привет
Theta
я понял)
Theta
но не буду повторяться...
Theta
чёт он совсем замолчал
Alexander
если поле строгое, то и там и там мы может не вернуть Test
кана
https://gist.github.com/klapaucius/1393078 - что это дает?
как итог, смысл этого все еще не ясен
Alexander
если не строгое и там и там вернем
Leonid 🦇
как красивее переписать ? go `catch` (\e -> handle e $> succ i) `catch` (\e -> onHttpE e $> succ i)
Alexander
как итог, смысл этого все еще не ясен
как писать классов типов ограниченные под констреинтами на тип
Alexander
catches?
Leonid 🦇
catches?
о, точняк. в Control.Monad.Catch оно не список берет а Foldable, вот я и не заметил.
Alexander
о каком поле идёт речь?
поле структуры Тест, где находится список
Theta
поле структуры Тест, где находится список
Ну... я, признаюсб рассмотрел лишь два крайних случая. все поля ленивы и все поля строги.
Theta
ясно короч
Theta
Главное не ясно зачем он задал этот вопрос в ответ на мои попытки уточнить недопонимания между нами? 😆
Theta
кто и что имел в виду
Theta
так странно
A64m
как итог, смысл этого все еще не ясен
неудачный пример, таким объявлением класса Functor все равно нормально пользоваться нельзя
Theta
> type C f a :: Constraint type C f a = () fmap :: (C f a, C f b) => (a -> b) -> f a -> f b Что это за магия? O_o
Theta
не похоже на... type Deck = [Card]
Theta
например
Theta
по каким ключевым словам можно узнать подробнее?
Theta
спс.
Theta
... читал да забыл
Юрий
Глупый вопрос - какую задачу решают type families, а какую gadt?
Alexander
это одно и тоже
Alexander
грубо говоря
кана
Очень грубо имхо, они просто одинаковые механизмы (коершены эквивалентных типов) используют
Alexander
вообще tf - вычисление на типах
Leonid 🦇
хм. а как на 32 битных ghc делать threadDelay на дольше чем maxBound :: Int микросекунд?
кана
Делать несколько раз и мириться с возможной погрешностью
Alexander
сделать несколько?
Alexander
можно попросить at тебя в сокет пнуть
Leonid 🦇
а есть пакет?
кана
Есть, видел недавно
Alexander
был
Leonid 🦇
https://hackage.haskell.org/package/concurrent-extra-0.5/docs/Control-Concurrent-Thread-Delay.html как обычно, Бас приходит на помощь
Alexander
не помню что-то типа timeouts
Leonid 🦇
хм
Leonid 🦇
из нового выпелен
Leonid 🦇
http://hackage.haskell.org/package/unbounded-delays во
Юрий
Ну так а задачи с их помощью какие решают )?
кана
семейства: как уже выше сказали, вычисление на уровне типов классический пример - найти тип элемента по типу контейнера другой классичиский - сложение натуральных чисел на тайплевеле как я понимаю, многие задачи семейств раньше (да и сейчас) решали через классы + функциональные зависимости гадты: когда нужна зависимость типа от типов аргументов конструктора, в случае с фантомами например. Классический пример: data E a where I :: Int -> E Int B :: Bool -> E Bool Sum :: E Int -> E Int -> E Int -- this And :: E Bool -> E Bool -> E Bool -- and this eval :: E a -> a eval (I x) = x eval (B b) = b eval (Sum x y) = eval x + eval y eval (And a b) = eval a && eval b без gadt-ов такое написать сложнее решаемые задачи: более инвариантные под задачу типы