Size: a a a

2020 December 24

А

Александр in Haskell
Кстати, всем спасибо за помощь и интересное общение)
источник
2020 December 25

ЖК

Жук Короед in Haskell
Какой вариант лучше (по читаемости, идиоматичности):
SendNextFormField -> 
   either  (const $ notify' "Анкета уже заполнена!")
           (notify' . mappend "Заполните поле: " . show)
   . (nextStepForm =<<) =<< currentForm
или
SendNextFormField -> do
   current <- currentForm
   case current >>= nextStepForm of
       Left form        -> do
           notify' "Анкета уже заполнена!"
       Right field_type ->
           notify' $ "Заполните поле: " <> show field_type
?
источник

ЖК

Жук Короед in Haskell
А может есть какие-то варианты написать это лучше?
источник

к

кана in Haskell
если бы не nextStepForm, то я скорее всего написал бы так, но из-за nextStepForm не уверен
источник

к

кана in Haskell
а, там еще и >>= нужен внутри, ну тогда точно бы сделал второй вариант
источник

к

кана in Haskell
а currentForm получается это тоже Either
источник

ЖК

Жук Короед in Haskell
m (Either a b)
источник

ЖК

Жук Короед in Haskell
где m - другая монада
источник

MK

Maxim Koltsov in Haskell
It would be much clearer to write:

type instance F @Type         Int = Char
type instance F @(Type->Type) Int = Maybe
and indeed this is already legal.
источник

MK

Maxim Koltsov in Haskell
Не знал что собаку так использовать можно
источник

к

кана in Haskell
ну вот я про это и говорю, смещение в сторону "имплисит параметры" а не "тайп параметры2
источник

MK

Maxim Koltsov in Haskell
А ты знал что так можно писать?
источник

к

кана in Haskell
всякие

data X = forall a. X

type family Y x where
 Y (X @a) = a

все еще вписываются в "тайп параметры"
источник

к

кана in Haskell
не
источник

к

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

но кажется просто опять тайплевелел обгоняет термлевел по фичам, и там уже все давно есть, реально нужно только добавить IO на тайплевел и запретить термлевел (шутка Романа, возможно не шутка)
источник

JS

Jerzy Syrowiecki in Haskell
Жук Короед
Какой вариант лучше (по читаемости, идиоматичности):
SendNextFormField -> 
   either  (const $ notify' "Анкета уже заполнена!")
           (notify' . mappend "Заполните поле: " . show)
   . (nextStepForm =<<) =<< currentForm
или
SendNextFormField -> do
   current <- currentForm
   case current >>= nextStepForm of
       Left form        -> do
           notify' "Анкета уже заполнена!"
       Right field_type ->
           notify' $ "Заполните поле: " <> show field_type
?
второй, однозначно. можно ещё notify' вынести за скобки case
источник

R

Roman in Haskell
кана
ироничные ответы ЯКОБЫ непонимающего вопроса человека - это самое дно
будто что-то плохое. Пришел чтоб тебе домашку сделали — готовься, что тебе будут присылать пасту про пандоричекий захват
источник

R

Roman in Haskell
помогать нельзя, иронизировать нельзя, одни какие-то запреты
источник

O

Ortofax in Haskell
Александр
Кста, если кому-то когда-то понадобится, вот первое
https://hackage.haskell.org/package/base-4.14.1.0/docs/src/Data.OldList.html#sort или можно отсюда вообще взять
источник

JS

Jerzy Syrowiecki in Haskell
Roman
помогать нельзя, иронизировать нельзя, одни какие-то запреты
помогать можно и нужно
источник