Size: a a a

Elm Lang сообщество разработчиков

2020 July 22

k

kl mw in Elm Lang сообщество разработчиков
Alex
там 3 строчки кода
не то что хочется велосипедить
источник

A

Alex in Elm Lang сообщество разработчиков
kl mw
не то что хочется велосипедить
map : (a -> b) -> Maybe a -> Maybe b
map f maybe =
 case maybe of
   Just value ->
     Just (f value)

   Nothing ->
     Nothing
источник

A

Alex in Elm Lang сообщество разработчиков
это базовые навыки
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Только зачем такое делать для функции, которая уже входит в кор непонятно
источник

k

kl mw in Elm Lang сообщество разработчиков
Denis Krivosheev
Только зачем такое делать для функции, которая уже входит в кор непонятно
that's the point!
источник
2020 July 23

k

kl mw in Elm Lang сообщество разработчиков
друзья, а вот если у меня есть такой тип:
type alias Interval b a =
{ a
| start : b
, end   : b
}

то как мне построить функцию
nonmaybe : Interval a (Maybe b) -> Maybe (Interval a b)

идейно понятно что я хочу:
nonmaybe interval =
case (interval.start, inerval.end) of
   (Just start , Just end) -> Just {start = start, end = end}
    -- problem! is of type Interval a {} , not Interval a b --
   _ -> Nothing
источник

k

kl mw in Elm Lang сообщество разработчиков
но проблема как раз с кусочком типа a, который добавляется в record
источник

k

kl mw in Elm Lang сообщество разработчиков
потому что я не понимаю как просто его скопировать в новый
источник

k

kl mw in Elm Lang сообщество разработчиков
record update я опять же не могу использовать, потому что типы у рекордов уже разные
источник

k

kl mw in Elm Lang сообщество разработчиков
если не было бы типа a, то все было бы очень просто... но он есть и конкретно в моем приложении над которым я сейчас работаю это довольно важно
источник

k

kl mw in Elm Lang сообщество разработчиков
там несколько пайпов, в которых этот тип a разный и это такая дополнительная информация которая последовательно дополняется
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Не понимаю суть типа... почему он вообще рекорд?
источник

k

kl mw in Elm Lang сообщество разработчиков
Denis Krivosheev
Не понимаю суть типа... почему он вообще рекорд?
а почему ему быть не рекордом?)
источник

k

kl mw in Elm Lang сообщество разработчиков
в результате применения нескольких функций это получается рекорд с 5 полями)
источник

k

kl mw in Elm Lang сообщество разработчиков
и дальше с ним уже так удобно работать
источник

k

kl mw in Elm Lang сообщество разработчиков
можно попробовать сделать такой тип конечно
type Interval a b = Interval b b a
источник

k

kl mw in Elm Lang сообщество разработчиков
и работать с ним и сделать потом еще дополнительное преобразование в конце
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
погоди) Обьясни предметную область, что ты пытаешься добиться
источник

k

kl mw in Elm Lang сообщество разработчиков
наверное это самое разумное решение, потому что изучив документацию я не нашли ничего путного
но вдруг все таки можно с рекордами все тоже самое сделать
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Почему это не может быть например
type Interval = Interval Int Int

type alias WithInterval a =
   { a | interval : Interval }
источник