Size: a a a

2021 March 08

AP

Aleksei (astynax) Pi... in Haskell
Его нужно установить, скорее всего
источник

AP

Aleksei (astynax) Pi... in Haskell
LH — отдельная штука от сторонних авторов, а не часть GHC
источник

X

XÆA-XII in Haskell
Denis Gabidullin
Вдруг будет в будущем полезно.
Такие вещи можно найти через hoogle:
https://hoogle.haskell.org/?hoogle=(a%20-%3E%20b%20-%3E%20c)%20-%3E%20(b%20-%3E%20a%20-%3E%20c)
Спс х2
источник

DG

Denis Gabidullin in Haskell
Жук Короед
Нашел вот такую штучку, поставил галочку, а никаких признаков LH не появилось.
На https://github.com/haskell/haskell-language-server сказано:

Liquid Haskell (haskell.liquidOn, default false): whether to enable Liquid Haskell support (currently unused until the Liquid Haskell support is functional again)

Видимо, ещё не сделали)
источник

ЖК

Жук Короед in Haskell
Настоящее type-safiety:
liquid-ghc-prim> Preprocessing library for liquid-ghc-prim-0.6.1..
liquid-ghc-prim> Building library for liquid-ghc-prim-0.6.1..
liquid-ghc-prim> [1 of 9] Compiling GHC.Debug
liquid-ghc-prim> ghc.exe: panic! (the 'impossible' happened)
liquid-ghc-prim>   (GHC version 8.10.4:
liquid-ghc-prim>      Prelude.!!: index too large
liquid-ghc-prim>
liquid-ghc-prim> Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug
liquid-ghc-prim>
Progress 52/54
источник

AA

A64m AL256m qn<co... in Haskell
XÆA-XII
Как называется функция, котрая представляет из себя f f1 a b = f1 b a ?
можно и без хугла
Prelude> _ :: (a -> b -> c) -> b -> a -> c

<interactive>:1:1: error:
   * Found hole: _ :: (a1 -> b1 -> c1) -> b1 -> a1 -> c1
     Where: `b1', `a1', `c1' are rigid type variables bound by
              an expression type signature:
                forall a1 b1 c1. (a1 -> b1 -> c1) -> b1 -> a1 -> c1
              at <interactive>:1:6-33
   * In the expression: _ :: (a -> b -> c) -> b -> a -> c
     In an equation for `it': it = _ :: (a -> b -> c) -> b -> a -> c
   * Relevant bindings include
       it :: (a -> b -> c) -> b -> a -> c (bound at <interactive>:1:1)
     Valid hole fits include
       flip :: forall a b c. (a -> b -> c) -> b -> a -> c
         with flip @a1 @b1 @c1
         (imported from `Prelude' (and originally defined in `GHC.Base'))
источник

X

XÆA-XII in Haskell
A64m AL256m qn I0
можно и без хугла
Prelude> _ :: (a -> b -> c) -> b -> a -> c

<interactive>:1:1: error:
   * Found hole: _ :: (a1 -> b1 -> c1) -> b1 -> a1 -> c1
     Where: `b1', `a1', `c1' are rigid type variables bound by
              an expression type signature:
                forall a1 b1 c1. (a1 -> b1 -> c1) -> b1 -> a1 -> c1
              at <interactive>:1:6-33
   * In the expression: _ :: (a -> b -> c) -> b -> a -> c
     In an equation for `it': it = _ :: (a -> b -> c) -> b -> a -> c
   * Relevant bindings include
       it :: (a -> b -> c) -> b -> a -> c (bound at <interactive>:1:1)
     Valid hole fits include
       flip :: forall a b c. (a -> b -> c) -> b -> a -> c
         with flip @a1 @b1 @c1
         (imported from `Prelude' (and originally defined in `GHC.Base'))
)
источник

DS

Dmitrii Skurikhin in Haskell
можно ли в хаскелле мутировать списки без использования IO или ST
могу ли я сделать так: на вход список, внутри делаю копию, грязные хаки с ним и на выходе копию получившегося,
не меняя сигнатуры [a] -> [a]?
источник

С

Сергей in Haskell
обычная деконструкция вроде это и делает
источник

С

Сергей in Haskell
ну то есть сплит в нужном месте, вставляешь что куда надо и все
источник

С

Сергей in Haskell
то что неизменяемое копируется дешево как референсы
источник

MK

Maxim Koltsov in Haskell
Что неизменяемо измениться не может
источник

AP

Aleksei (astynax) Pi... in Haskell
Dmitrii Skurikhin
можно ли в хаскелле мутировать списки без использования IO или ST
могу ли я сделать так: на вход список, внутри делаю копию, грязные хаки с ним и на выходе копию получившегося,
не меняя сигнатуры [a] -> [a]?
если внутри сделать ST, то это оно и будет

снаружи будет [a] -> [a]
источник

DS

Dmitrii Skurikhin in Haskell
я не могу например сделать swap вектора за O(1)
источник

JS

Jerzy Syrowiecki in Haskell
Dmitrii Skurikhin
я не могу например сделать swap вектора за O(1)
можно, только если это IOVector
источник

AP

Aleksei (astynax) Pi... in Haskell
ST — как раз способ сделать "внутри мутабельно, снаружи опять чисто"
источник

DS

Dmitrii Skurikhin in Haskell
Aleksei (astynax) Pirogov
если внутри сделать ST, то это оно и будет

снаружи будет [a] -> [a]
пошёл читать про ST, спасибо
источник

JS

Jerzy Syrowiecki in Haskell
иммутабельный вектор можно разморозить, помутировать и заморозить обратно, но заморозка — это линейное копирование.

можно ли будет делать Vector.swap за O(1) с линтиповой заморозкой?
источник

AP

Aleksei (astynax) Pi... in Haskell
Однократное копирование, это не так страшно часто
источник

JS

Jerzy Syrowiecki in Haskell
и IOVector не страшен
источник