Size: a a a

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

2019 May 25

MP

Max P in Elm Lang сообщество разработчиков
Ryner :: () -> IO ❄️
(<|) принимает 2 аргумента
1. Функция которую нужно применить
2. Значение которое нужно передать в эту функцию

В итоге он берет значение из аргумента два, посылает его в функцию из аргумента 1 и выполняет ее
Например
succ :: Int -> Int
succ = (+) 1

succ succ 2 -- будет ошибка
succ <| succ 2 -- сработает
succ (succ 2) -- тоже сработает
1 аргумент - это (a -> b) или (a -> b) -> a ?
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Max P
1 аргумент - это (a -> b) или (a -> b) -> a ?
(a -> b)
источник

MP

Max P in Elm Lang сообщество разработчиков
ага, а последнее b это тип возвращаемого значения.. так, перечитываю)
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Max P
ага, а последнее b это тип возвращаемого значения.. так, перечитываю)
Да и это результат функции которую мы передаем первым аргументом
источник

MP

Max P in Elm Lang сообщество разработчиков
ват?) чет не заходит, может еще какой примерчик есть?
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Max P
ват?) чет не заходит, может еще какой примерчик есть?
Да какой пример?
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
succ 1 == succ $ 1
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Ой
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
<|, $ в хаскеле
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
$ берет функцию слева от себя и применяет к ней значение справа
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Что может быть проще?
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Только функция id
источник

MP

Max P in Elm Lang сообщество разработчиков
не, я понимаю как оно работает
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
id :: a -> a
id a = a
источник

MP

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

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Max P
я не понимаю почему сигнатура такая, или не понимаю как ее прочесть, не могу нормально вопрос поставить, но сам бы я такую сигнатуру не написал)
Что в ней не понятного?
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
В () пишутся функции в сигнатурах
источник

MP

Max P in Elm Lang сообщество разработчиков
это тоже понятно.
Попробую привести пример (сорян, что не могу нормально сформулировать вопрос сейчас):
String.repeat 3 <| String.repeat 2 "A"

Вернет 6 А, это ок.
String.repeat 3 = String -> String
String.repeat 2 "A" = String

как String -> String <| String (если можно так написать для псевдопримера) превратилось в (a -> b) -> a -> b - не доходит
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Ничего не превращалось
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Результат выражения это :: String
источник