Size: a a a

2021 March 02

к

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

к

кана in Haskell
потому что это позволит например использовать эту точку как функтор, как траверсабл структуру
источник

[

[BRM]White Rabbit in Haskell
ладно, окей
источник

к

кана in Haskell
data Point a = Point a a
 deriving (Functor, Foldable, Traversable)

readInt :: IO Int
readInt = read <$> getLine

readPoint :: IO (Point Int)
readPoint = sequence (Point readInt readInt)
источник

к

кана in Haskell
насколько полезно для точки я без понятия
источник

к

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

[

[BRM]White Rabbit in Haskell
Окей, новый тупой вопрос. Как кастануть инт к даблу?)
источник

[

[BRM]White Rabbit in Haskell
кана
если бы я делал точку, я бы выбрал конкретный тип для координат, потому что не вижу профита хранить там значения разных типов
к примеру, если это точка на экране, она должна быть на интах. Если же это график функции, точка должна быть на даблах
источник

к

кана in Haskell
Prelude> fromIntegral (1 :: Int) :: Double
1.0
источник

A

Andrey in Haskell
кана
data Point a = Point a a
 deriving (Functor, Foldable, Traversable)

readInt :: IO Int
readInt = read <$> getLine

readPoint :: IO (Point Int)
readPoint = sequence (Point readInt readInt)
Ого, не знал, что так можно
источник

MK

Maxim Koltsov in Haskell
источник

MK

Maxim Koltsov in Haskell
какие поразительно ужасные результаты
источник

MK

Maxim Koltsov in Haskell
фу
источник

AA

A64m AL256m qn<co... in Haskell
Dreamerinnoise
изначально
а вот нет
источник

D

Dreamerinnoise in Haskell
ну дольше чем шарпы
источник

AA

A64m AL256m qn<co... in Haskell
Maxim Koltsov
какие поразительно ужасные результаты
в гхци норм:
Prelude> _ :: Int -> Double

<interactive>:1:1: error:
   * Found hole: _ :: Int -> Double
   * In the expression: _ :: Int -> Double
     In an equation for `it': it = _ :: Int -> Double
   * Relevant bindings include
       it :: Int -> Double (bound at <interactive>:1:1)
     Valid hole fits include
       toEnum :: forall a. Enum a => Int -> a
         with toEnum @Double
         (imported from `Prelude' (and originally defined in `GHC.Enum'))
       fromIntegral :: forall a b. (Integral a, Num b) => a -> b
         with fromIntegral @Int @Double
         (imported from `Prelude' (and originally defined in `GHC.Real'))
       realToFrac :: forall a b. (Real a, Fractional b) => a -> b
         with realToFrac @Int @Double
         (imported from `Prelude' (and originally defined in `GHC.Real'))
источник

AA

A64m AL256m qn<co... in Haskell
Dreamerinnoise
ну дольше чем шарпы
ну это-то конечно
источник

AA

A64m AL256m qn<co... in Haskell
кстати, в 9.2 новая фича, линтипы теперь совместимы со спорной хаскельной конструкцией case of
https://gitlab.haskell.org/ghc/ghc/-/commit/3b79e8b833646e995f035e4402f2284cc15cbd72
источник

[

[BRM]White Rabbit in Haskell
В хаскеле можно всё...
источник

к

кана in Haskell
почему нельзя, там разве struct не то же самое будет?
источник