Size: a a a

2021 May 04

[

[BRM]White Rabbit in Haskell
О, я смог  разрешить без этого
источник

[

[BRM]White Rabbit in Haskell
Оказалось, forall в тайпалиасе был лишним
источник

KV

Kirill Valyavin in Haskell
:set -XDisableTypechecking
:set -fno-warnings
Фух, теперь можно писать на хаскелле
источник

к

кана in Haskell
не ну аллоу никакой тайпчекинг же не отключает, он отключает только реально бесполезную проверку на выводимость сигнатуры из явных аргументов

бесполезную в контексте принятия неявных аргументов такими же важными как и явные, а не костылями для вывода типа, то есть когда мы используем тайпапп вместо прокси, и делаем апи, подразумевающее явное использование тайпаппа вместо проксей
источник

KV

Kirill Valyavin in Haskell
Ну то есть в 80% случаев его не надо включать, а надо просто исправить ошибку в коде
источник

к

кана in Haskell
ну, в моих случаях это 1% когда его не надо было включать и я реально ошибся в сигнатуре, и 99% когда было так как задумано
источник

к

кана in Haskell
1% ~ был ровно один такой случай на моей памяти
источник

к

кана in Haskell
избегание этого экстеншена = избегание неявных типоаргументов как фичи в принципе, а я считаю что ее нужно активно использовать, и выбрасывать прокси, и для этого нужно приучаться к ней, и проектировать апи через нее, то есть считать ее дефолтной, и максимально не пытаться ее избегать

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

KV

Kirill Valyavin in Haskell
Вот, сколько ж всякой пакости можно отключить, если просто писать без ошибок
источник

[

[BRM]White Rabbit in Haskell
Фу таким быть.
Чтоб ты понимал, у меня сейчас парное программирование и умный в нашей паре - компилятор.
источник

[

[BRM]White Rabbit in Haskell
так что его надо слушать
источник

KV

Kirill Valyavin in Haskell
Шеринг санков ещё отключить надо
источник

IO

I O in Haskell
:set -fno-ghc
источник

N

Nikita Ursol in Haskell
:!pkill ghc
источник

N

Nikita Ursol in Haskell
или даже так
:!python
источник

¯

¯\_(ツ)_/¯ in Haskell
В библиотеке binary есть функции для чтения различных примитивов. И на каждый примитив есть три функции, которые читают данные в разном порядке (от старшего к младшему, от младшему к старшему)
Мне нужно распарсить бинарные данные, но проблема в том, что об порядке байтов можно узнать, прочитав первый байт. (Условно, если там ноль, то порядок байтов LE, иначе BE). Но тогда бы пришлось писать две функции для разного порядка байт. Тогда как быть?
Я лишь придумал что-то подобное
data Endianness = LE | BE

getWord32 :: Endianness -> Get Word32
getWord32 LE = getWord32le
getWord32 BE = getWord32be

похоже на костыль
источник

VL

Vladimir Lebed in Haskell
Но кто-то же пишет эти данные, те что нужно прочитать? В доках порядок байт посмотреть? У автора спросить?
источник

¯

¯\_(ツ)_/¯ in Haskell
ну такое может быть, что один файл в LE, другой в BE. но первый байт (условно) в файле показывает, какой порядок байт
источник

JS

Jerzy Syrowiecki in Haskell
по-моему, не похоже на костыль. у вас в задаче способ чтения зависит от первого байта и в коде то же самое. в чём проблема?
источник

JS

Jerzy Syrowiecki in Haskell
если как-то некрасивенько, хочется неявно передавать, то берите Reader
источник