Size: a a a

PureScript — русскоговорящее сообщество

2019 May 13

p

parket in PureScript — русскоговорящее сообщество
Там идентацию поправили. Where блок должен быть правее, я так понял
источник

p

parket in PureScript — русскоговорящее сообщество
bar = hello
   where
       hello = 10



[1/1 MissingTypeDeclaration] src/Main.purs:15:1

     v
 15  bar = hello
 16      where
 17          hello = 10
                      ^
 
 No type declaration was provided for the top-level declaration of bar.
 It is good practice to provide type declarations as a form of documentation.
 The inferred type of bar was:
 
   Int
 
 in value declaration bar
источник

p

parket in PureScript — русскоговорящее сообщество
У меня, в прочем, работает
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
плохой пример я дал
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
mergeRight :: SplitArray ~> SplitArray
mergeRight xs =
 case uncons xs of
   Nothing -> []
   Just {head: Text c, tail} -> let (Tuple d lTail) = go tail in Text (c <> d) : mergeRight lTail
   Just r -> r.head : mergeRight r.tail
     where
       go tail = case uncons tail of
         Just { head: Delim d', tail: tail' } -> Tuple d' tail'
         _ -> Tuple [] tail

так не работает
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
надо так
mergeRight :: SplitArray ~> SplitArray
mergeRight xs =
 let
   go tail = case uncons tail of
     Just { head: Delim d', tail: tail' } -> Tuple d' tail'
     _ -> Tuple [] tail
 in
   case uncons xs of
     Nothing -> []
     Just {head: Text c, tail} -> let (Tuple d lTail) = go tail in Text (c <> d) : mergeRight lTail
     Just r -> r.head : mergeRight r.tail
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
go не виден
источник

p

parket in PureScript — русскоговорящее сообщество
Да, теперь where можно в ветках case
источник

p

parket in PureScript — русскоговорящее сообщество
mergeRight :: SplitArray ~> SplitArray
mergeRight xs =
 case uncons xs of
   Nothing -> []
   Just {head: Text c, tail} -> let (Tuple d lTail) = go tail in Text (c <> d) : mergeRight lTail
   Just r -> r.head : mergeRight r.tail
 where
   go tail = case uncons tail of
     Just { head: Delim d', tail: tail' } -> Tuple d' tail'
     _ -> Tuple [] tail
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
хм, странное ест. преобразование
SplitArray ~> SplitArray
источник

p

parket in PureScript — русскоговорящее сообщество
Vasiliy Yorkin
хм, странное ест. преобразование
SplitArray ~> SplitArray
Почему?
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
из одного в тоже самое
а, хм
источник

p

parket in PureScript — русскоговорящее сообщество
Шоткат в forall a . SplitArray a -> SplitArray a
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
ну или так
mergeRight :: SplitArray ~> SplitArray
mergeRight xs =
 case uncons xs of
   Nothing -> []
   Just {head: Text c, tail} -> let (Tuple d lTail) = go tail in Text (c <> d) : mergeRight lTail
     where
       go tail = case uncons tail of
         Just { head: Delim d', tail: tail' } -> Tuple d' tail'
         _ -> Tuple [] tail
   Just r -> r.head : mergeRight r.tail


надо внести в ту ветку, что использует его
или если для всего надо то let/in
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
или where на уровне case
mergeRight :: SplitArray ~> SplitArray
mergeRight xs =
 case uncons xs of
   Nothing -> []
   Just {head: Text c, tail} -> let (Tuple d lTail) = go tail in Text (c <> d) : mergeRight lTail
   Just r -> r.head : mergeRight r.tail
 where
   go tail = case uncons tail of
     Just { head: Delim d', tail: tail' } -> Tuple d' tail'
     _ -> Tuple [] tail
источник

p

parket in PureScript — русскоговорящее сообщество
или where на уровне case, Ну да я об этом и написал
источник

p

parket in PureScript — русскоговорящее сообщество
[1/1 MissingTypeDeclaration] src/Main.purs:15:1

     v
 15  foo =
 16      case a of
 17          10 -> "Hello"
 18          _  -> show a
 19      where
 20          a = 13
                  ^
 
 No type declaration was provided for the top-level declaration of foo.
 It is good practice to provide type declarations as a form of documentation.
 The inferred type of foo was:
 
   String
 
 in value declaration foo
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
parket
Шоткат в forall a . SplitArray a -> SplitArray a
а, ок, понял, никогда не делал так просто, не привычно, обычно A ~> B
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
еще where больше нельзя использовать в паттерн гардах
источник

p

parket in PureScript — русскоговорящее сообщество
Вот
источник