Size: a a a

2021 February 23

IK

Ivan Kretov in Haskell
Yan Shkurinskiy
И даже если будет легко!
Yan, приветствую. Создал statement :: Statement TertiaryUser TertiaryUser, надо подвести это под servant функцию TertiaryUser -> Handler TertiaryUser. Есть какие то методы для реализации этого великолепия?
источник

R

Roman in Haskell
Прекрасный инстанс
источник

R

Roman in Haskell
Просто замечательный
источник

к

кана in Haskell
в этом разница наших подходов
источник

MK

Maxim Koltsov in Haskell
Roman
Просто замечательный
Нет
источник

к

кана in Haskell
Ivan Kretov
Yan, приветствую. Создал statement :: Statement TertiaryUser TertiaryUser, надо подвести это под servant функцию TertiaryUser -> Handler TertiaryUser. Есть какие то методы для реализации этого великолепия?
userStatement :: Statement TertiaryUser TertiaryUser

f :: TertiaryUser -> Handler TertiaryUser
f user = do
 result <- liftIO $ Hasql.run (Hasql.statement userStatement)
 case result of
   Right value -> pure value
   Left queryError -> throwM err500

это же тривиально пишется, ты как будто изучаешь хаскель с нуля через приложение на серванте
источник

к

кана in Haskell
что в общем-то наверное и не такой и плохой подход
источник

IK

Ivan Kretov in Haskell
кана
userStatement :: Statement TertiaryUser TertiaryUser

f :: TertiaryUser -> Handler TertiaryUser
f user = do
 result <- liftIO $ Hasql.run (Hasql.statement userStatement)
 case result of
   Right value -> pure value
   Left queryError -> throwM err500

это же тривиально пишется, ты как будто изучаешь хаскель с нуля через приложение на серванте
о, run же есть, точно
источник

IK

Ivan Kretov in Haskell
спасибо!
источник

K

Kir in Haskell
Maxim Koltsov
просто отвратительный
Я его использовал. Что в нем ужасного-то? Я считаю ужасным инстанс моноида для Data.Map, который не требует полугруппы от элементов.
источник

MK

Maxim Koltsov in Haskell
Kir
Я его использовал. Что в нем ужасного-то? Я считаю ужасным инстанс моноида для Data.Map, который не требует полугруппы от элементов.
ужасно то, что ты такого не ожидаешь
источник

AA

A64m AL256m qn<co... in Haskell
Maxim Koltsov
ужасный инстанс
ПРОКЛЯТЫЕ ФУНКЦООНАЛЬЩИКИ ИСПОЛЬЗУЮТ ЭТИ ИХНИЕ ПРОКЛЯТЫЕ ФУНКЦЕИ
источник

к

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

это как Monad ((->) a)

забыл где-то аргумент написать новый, и получаешь странные ошибки, думая что работаешь в M, а на самом деле в (a -> M b)
источник

MK

Maxim Koltsov in Haskell
A64m AL256m qn I0
ПРОКЛЯТЫЕ ФУНКЦООНАЛЬЩИКИ ИСПОЛЬЗУЮТ ЭТИ ИХНИЕ ПРОКЛЯТЫЕ ФУНКЦЕИ
ДА
источник

NI

Nick Ivanych in Haskell
A64m AL256m qn I0
ПРОКЛЯТЫЕ ФУНКЦООНАЛЬЩИКИ ИСПОЛЬЗУЮТ ЭТИ ИХНИЕ ПРОКЛЯТЫЕ ФУНКЦЕИ
Ладно хоть не морфизмы.
источник

MK

Maxim Koltsov in Haskell
вот например реальный вопрос реального коллеги
источник

MK

Maxim Koltsov in Haskell
и потом комментарий "я бы предпочёл ошибку компиляции чем такое поведение"
источник

MK

Maxim Koltsov in Haskell
ну серьёзно, нахрена этот инстанс нужен-то?
источник

MK

Maxim Koltsov in Haskell
*цитата из парка юрского периода*
источник

MK

Maxim Koltsov in Haskell
кана
ужасно скорее то, что такой инстанс можно случайно заиспользовать, а код скомпилируется

это как Monad ((->) a)

забыл где-то аргумент написать новый, и получаешь странные ошибки, думая что работаешь в M, а на самом деле в (a -> M b)
и это тоже
источник