Size: a a a

2020 June 02

MK

Maxim Koltsov in Haskell
module M where

import M type as T

data Foo = Foo {...}
makeLenses 'T.Foo
источник

MK

Maxim Koltsov in Haskell
почему многие учителя хаскеля говорят, что punning ведёт к confusion?
источник

MK

Maxim Koltsov in Haskell
я не помню чтобы это было проблемой когда я учил...
источник

MK

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

_:

_Ryner' :: IO ❄️ in Haskell
Как в серванте лучше организовать такое?

data CRUD = C | R | U | D

-- body that we get from a post request
data Req a = { reqType :: CRUD, body :: a }


Дать body тип Value и декодить его во что-то в зависимости от значения reqType совсем плохо? Или можно как-то подобное лучше сделать?
источник

MK

Maxim Koltsov in Haskell
ммм завивисимые пары
источник

MK

Maxim Koltsov in Haskell
_Ryner' :: IO ❄️
Как в серванте лучше организовать такое?

data CRUD = C | R | U | D

-- body that we get from a post request
data Req a = { reqType :: CRUD, body :: a }


Дать body тип Value и декодить его во что-то в зависимости от значения reqType совсем плохо? Или можно как-то подобное лучше сделать?
сделай gadt CRUD -> Type
задолбаешься инстансы писать конечно
источник

_:

_Ryner' :: IO ❄️ in Haskell
В идеале хотелось бы это на уровне типов серванта сделать
источник

_:

_Ryner' :: IO ❄️ in Haskell
Без мануального декодирования
источник

MK

Maxim Koltsov in Haskell
ну так если у тебя будет такой гадт с инстансом FromJSON, пихаешь его в ReqBody и всё
источник

MK

Maxim Koltsov in Haskell
параметр остаётся свободным, в хендлере паттерн-матчишь
источник

MK

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

MK

Maxim Koltsov in Haskell
что за бред
источник

MK

Maxim Koltsov in Haskell
(хватит читать тайплевел пропозалы видимо)
источник

QZ

Quet Zal in Haskell
_Ryner' :: IO ❄️
Как в серванте лучше организовать такое?

data CRUD = C | R | U | D

-- body that we get from a post request
data Req a = { reqType :: CRUD, body :: a }


Дать body тип Value и декодить его во что-то в зависимости от значения reqType совсем плохо? Или можно как-то подобное лучше сделать?
один эндпоинт который принимает 4 разного вида структуры?
источник

MK

Maxim Koltsov in Haskell
сделай просто сумму для Req?
источник

_:

_Ryner' :: IO ❄️ in Haskell
Quet Zal
один эндпоинт который принимает 4 разного вида структуры?
Да
источник

QZ

Quet Zal in Haskell
а как ты это предполагаешь? декодировать по очереди и "кто первый успешно декодировался"?
источник

QZ

Quet Zal in Haskell
чет дизайн апи даже не на троечку
источник

MK

Maxim Koltsov in Haskell
Quet Zal
а как ты это предполагаешь? декодировать по очереди и "кто первый успешно декодировался"?
так там тег есть, похоже
источник