Size: a a a

2021 March 31

ЗП

Зигохистоморфный Пре... in Haskell
вообще тут и свою сигму по заданию можно сделать и многое другое
https://github.com/i-am-tom/haskell-exercises/
источник

Y

Yuuri in Haskell
кана
вот бы можно было в хаскеле компайлтайм ошибки ловить и кидать свои вместо них
А чо, нельзя? В TH же можно произвольный IO выполнять
источник

ЗП

Зигохистоморфный Пре... in Haskell
можно я думаю еще bnfc что я выше кидал попробовать
источник

AA

A64m AL256m qn<co... in Haskell
ХАСКЕЛИСТ! если хочешь локальные модули, неймспейсы для алгтд, локальные импорты и прочие хорошие вещи, напиши про это СПЖу здесь:
https://github.com/ghc-proposals/ghc-proposals/pull/283#issuecomment-811149253
голосуй или проиграешь!
источник

[

[BRM]White Rabbit in Haskell
Локальные модули и неймспейсы это c#-like ?
источник

[

[BRM]White Rabbit in Haskell
А что вообще следует из того что в хаскеле есть завкайнды?
источник

Y

Yuuri in Haskell
Завкайндом
источник

AA

A64m AL256m qn<co... in Haskell
[BRM]White Rabbit
Локальные модули и неймспейсы это c#-like ?
ну шоб data Maybe a = Just a | Nothing
образовывала неймспейс
и можно было писать Maybe.Just и Maybe.Nothing
источник

AA

A64m AL256m qn<co... in Haskell
короче как везде сделано, где авторы языка чет кроме факториала писали
источник

[

[BRM]White Rabbit in Haskell
а, понимаю
источник

[

[BRM]White Rabbit in Haskell
давайте ещё статик импорты тогда
источник

AA

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

[

[BRM]White Rabbit in Haskell
На примере
источник

[

[BRM]White Rabbit in Haskell
источник

L

Lierdakil in Haskell
Sooqa
я хотел както так

data Fresh
data HasLoad

class Contextual (container :: * -> [*] -> *) where
  init :: container () '[Fresh]

class (∀a b (t :: a -> b -> *). Contextual t, Contains Fresh b ~ True)
  => Canonnical t where
  write :: v -> t l b -> t v (HasLoad : Remove Fresh b)
Что-то я по ходу не впилил. Если предположить, что t должен принимать список с Fresh, то как write может его прикладывать к списку без Fresh в возвращаемом значении?
источник

L

Lierdakil in Haskell
Sooqa
я хотел както так

data Fresh
data HasLoad

class Contextual (container :: * -> [*] -> *) where
  init :: container () '[Fresh]

class (∀a b (t :: a -> b -> *). Contextual t, Contains Fresh b ~ True)
  => Canonnical t where
  write :: v -> t l b -> t v (HasLoad : Remove Fresh b)
И почему нельзя просто если я правильно понял идею

data Fresh
data HasLoad

type Contextual :: (Type -> [Type] -> Type) -> Constraint
class Contextual container where
 init :: container () '[Fresh]

type Canonnical :: (Type -> [Type] -> Type) -> Constraint
class Contextual t => Canonnical t where
 write :: Contains Fresh b ~ True
   => v -> t l b -> t v (HasLoad : Remove Fresh b)
источник

S

Sooqa in Haskell
Lierdakil
И почему нельзя просто если я правильно понял идею

data Fresh
data HasLoad

type Contextual :: (Type -> [Type] -> Type) -> Constraint
class Contextual container where
 init :: container () '[Fresh]

type Canonnical :: (Type -> [Type] -> Type) -> Constraint
class Contextual t => Canonnical t where
 write :: Contains Fresh b ~ True
   => v -> t l b -> t v (HasLoad : Remove Fresh b)
Я нашёл две причины. Удобнее писать так потомучто получается "алиас" на констрейнт и нельзя задать плохие инстанцы
источник

a

adam in Haskell
A64m AL256m qn I0
ХАСКЕЛИСТ! если хочешь локальные модули, неймспейсы для алгтд, локальные импорты и прочие хорошие вещи, напиши про это СПЖу здесь:
https://github.com/ghc-proposals/ghc-proposals/pull/283#issuecomment-811149253
голосуй или проиграешь!
да у него и так уже есть спека каким должен быть хаскель на последующие лет 20, называется агда
источник

L

Lierdakil in Haskell
Sooqa
Я нашёл две причины. Удобнее писать так потомучто получается "алиас" на констрейнт и нельзя задать плохие инстанцы
Не понял я какой алиас и какие именно инстансы нельзя написать в нерабочем варианте которые можно в рабочем (собственно никакие, потому что он нерабочий, но это ладно). Но тот b который в forall в заголовке класса это же ведь совсем не тот же  b который в сигнатуре метода, у них область видимости разная. Тот b который в forall он к констрейнту относится.
источник

L

Lierdakil in Haskell
Lierdakil
Не понял я какой алиас и какие именно инстансы нельзя написать в нерабочем варианте которые можно в рабочем (собственно никакие, потому что он нерабочий, но это ладно). Но тот b который в forall в заголовке класса это же ведь совсем не тот же  b который в сигнатуре метода, у них область видимости разная. Тот b который в forall он к констрейнту относится.
Или я торможу?
источник