Size: a a a

2021 January 15

AY

Andrei Yangabishev in Haskell Start
Если я хочу сделать аналог read :: String -> a, то куда смотреть, какую магию использовать чтобы сделать что-нибудь типа
readConfig :: Env -> Name -> a
чтобы потом { readConfig env "N" :: Int }
т.е. читать конфиг и автоматом через указание типа получать нужный тип, а не конвертить строку в нужный тип
источник

AP

Aleksei (astynax) Pi... in Haskell Start
А как работает read? Класс нужен
источник

АК

Анатолий Кот... in Haskell Start
Andrei Yangabishev
Если я хочу сделать аналог read :: String -> a, то куда смотреть, какую магию использовать чтобы сделать что-нибудь типа
readConfig :: Env -> Name -> a
чтобы потом { readConfig env "N" :: Int }
т.е. читать конфиг и автоматом через указание типа получать нужный тип, а не конвертить строку в нужный тип
тайпклассы посмотрите
источник

к

кана in Haskell Start
Andrei Yangabishev
Если я хочу сделать аналог read :: String -> a, то куда смотреть, какую магию использовать чтобы сделать что-нибудь типа
readConfig :: Env -> Name -> a
чтобы потом { readConfig env "N" :: Int }
т.е. читать конфиг и автоматом через указание типа получать нужный тип, а не конвертить строку в нужный тип
class X a where
 x :: a

instance X Int where
 x = 42

instance X String where
 x = "hello world"

f :: Int -> String -> String
f a b = show a <> b

main = print (f x x) -- 42hello world
источник

R

Rafael in Haskell Start
Как создать инстанс для Ord короче? А то слишком много писать)
источник

JS

Jerzy Syrowiecki in Haskell Start
Rafael
Как создать инстанс для Ord короче? А то слишком много писать)
deriving (Ord)
источник

JS

Jerzy Syrowiecki in Haskell Start
только Hour и Minute переставить
источник

JS

Jerzy Syrowiecki in Haskell Start
только у вас будет 1 секунда меньше 0 минут
источник

к

кана in Haskell Start
источник

R

Rafael in Haskell Start
Jerzy Syrowiecki
deriving (Ord)
Спасибо
источник

R

Rafael in Haskell Start
Jerzy Syrowiecki
только у вас будет 1 секунда меньше 0 минут
Как быть?
источник

к

кана in Haskell Start
переставить местами конструкторы
источник

к

кана in Haskell Start
выше на скрине я дал пример
источник

A

Aragaer in Haskell Start
добавить функцию toSeconds и сравнивать через нее
источник

R

Rafael in Haskell Start
кана
переставить местами конструкторы
источник

A

Aragaer in Haskell Start
ну даже если переставить местами конструкторы, 90 секунд это как правило больше одной минуты
источник

к

кана in Haskell Start
Second, Minute, Hour, ...
источник

к

кана in Haskell Start
так должно быть
источник

R

Rafael in Haskell Start
кана
так должно быть
Благодарю
источник

JS

Jerzy Syrowiecki in Haskell Start
Aragaer
добавить функцию toSeconds и сравнивать через нее
годы нельзя однозначно превратить в секунды
источник