Size: a a a

2020 June 23

YP

Yuriy Pitomets in Haskell
тогда любопытно как оно с type ascription и декларациями типов будет
источник

к

кана in Haskell
а есть же типизированная схема
источник

к

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

YP

Yuriy Pitomets in Haskell
плюс макросы.... вызывают настороженность тем что на них-то можно большую часть кода написать, но проблема их отладить, если вдруг что
источник

YP

Yuriy Pitomets in Haskell
хотя TH юзается и так во все поля
источник

YP

Yuriy Pitomets in Haskell
мне было бы интересно потыкать что-то фп и типизированное со стековым синтаксисом...
источник

YP

Yuriy Pitomets in Haskell
Попробовал выразить сигнатуру
:set -XConstraintKinds
:set -XQuantifiedConstraints
:{
import Data.Kind
import Data.Row
import Data.Row.Internal

-- You can't specify an instance for a tuple constraint
-- In the quantified constraint ...

type MonadSig (r :: Row Type)
 = forall (t :: Type -> Type)
-- "GHC doesn't yet support impredicative polymorphism"
  (a :: Type) (b :: Type).
   ( Applicative t
   , Subset
       ( "lift0" .== (a -> t a)
       .+ "flatMap" .== (t a -> (a -> t b) -> t b)
       ) r )
:}
но ghc меня послал. Не знаю, может на тайп-фемили как-то можно... Или я хочу странного.
источник

K

Kir in Haskell
Yuriy Pitomets
буд-то в хаскеле синтаксис хороший... Отступы это, конечно, приятно, но... Где-то правоассоциативность, где-то левоассоциативность, где-то есть скобочки, где-то нет, приоритет зависит от конкретной декларации; где-то indentation, где-то alignment; отступы везде разные, а вертикальное выравнивание хаотичное; сигнатуру и определение функции нельзя написать в однострочник без расширений языка... О да, кстати, расширения...
> Где-то правоассоциативность, где-то левоассоциативность, ..., приоритет зависит от конкретной декларации

Как будто что-то плохое. Для DSL самое то.

> где-то indentation, где-то alignment

???

> отступы везде разные, а вертикальное выравнивание хаотичное

Выравнивание определяется первым токеном, никто не мешает делать 4-space или 2-space.

> сигнатуру и определение функции нельзя написать в однострочник без расширений языка

Это печально, да. С другой стороны, тип функции не придётся парсить из аргументов.

> О да, кстати, расширения...

Вот тут, я считаю, давно пора сделать новый стандарт языка, который бы автоматом включал всякие DataKinds.
источник

YP

Yuriy Pitomets in Haskell
> ???
ну все это выравнивоние по ::, по знаку =, при том даже когда зто не первый символ в строчке. В итоге код становится двухмерным, с кучей пробелов. Иногда. А иногда нет. Как повезёт.
источник

AV

Alexander Vershilov in Haskell
@maksbotan меня вот такое бесит, что не написать concat <$> for hosts $ \h -> ...
но BlockArguments тут кажется спасают
источник

MK

Maxim Koltsov in Haskell
да, вот это мой частый случай!
источник

MK

Maxim Koltsov in Haskell
пишу fmap concat $ for ...
источник

AV

Alexander Vershilov in Haskell
Я щас с blockarguments написал
источник

AV

Alexander Vershilov in Haskell
Но обычно было как раз fmap concat
источник

MK

Maxim Koltsov in Haskell
Alexander Vershilov
Я щас с blockarguments написал
concat <$> do ?
источник

AV

Alexander Vershilov in Haskell
concat <$> for hosts \h ->
 getAddrInfo ...
источник

MK

Maxim Koltsov in Haskell
а, понял
источник

AV

Alexander Vershilov in Haskell
хм Set.fromList более error-prone
источник

MK

Maxim Koltsov in Haskell
мне почему-то блок аргумнетс немного не нравятся
источник

AV

Alexander Vershilov in Haskell
Мне вот тоже
источник