LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Как-то у меня сложилось ощущение, что это не совсем простое протаскивание:

Это совсем простое протаскивание, которое скрыто каррированием и небольшой магией.

Поскольку с Haskell-ом я сильно на «Вы», то не могли бы вы уточнить, этот самый аргумент Config в сигнатурах ваших функций будет присутствовать явно или все-таки его там не будет?

В сигнатурах будет. В списке аргументов — нет. Например:

data MyConfig = MyConfig { getNumber :: Int }

f :: Int -> Reader MyConfig Int
f i = do
    num <- asks getNumber
    return (i + num)

Тут главное удобство в том, что этот самый MyConfig будет неявно передаваться вниз по всему стеку вызовов. Ну и да, сигнатуры в Haskell писать не обязательно, и всё будет работать без них.

Исправление hateyoufeel, :

Как-то у меня сложилось ощущение, что это не совсем простое протаскивание:

Это совсем простое протаскивание, которое скрыто каррированием.

Поскольку с Haskell-ом я сильно на «Вы», то не могли бы вы уточнить, этот самый аргумент Config в сигнатурах ваших функций будет присутствовать явно или все-таки его там не будет?

В сигнатурах будет. В списке аргументов — нет. Например:

data MyConfig = MyConfig { getNumber :: Int }

f :: Int -> Reader MyConfig Int
f i = do
    num <- asks getNumber
    return (i + num)

Тут главное удобство в том, что этот самый MyConfig будет неявно передаваться вниз по всему стеку вызовов. Ну и да, сигнатуры в Haskell писать не обязательно, и всё будет работать без них.

Исходная версия hateyoufeel, :

Как-то у меня сложилось ощущение, что это не совсем простое протаскивание:

Это совсем простое протаскивание, которое скрыто каррированием.

Поскольку с Haskell-ом я сильно на «Вы», то не могли бы вы уточнить, этот самый аргумент Config в сигнатурах ваших функций будет присутствовать явно или все-таки его там не будет?

В сигнатурах будет. В списке аргументов — нет. Например:

data MyConfig = MyConfig { getNumber :: Int }

f :: Int -> Reader MyConfig Int
f i = do
    num <- asks getNumber
    return (i + num)

Тут суть в том, что этот самый MyConfig будет неявно передаваться вниз по всему стеку вызовов. Ну и да, сигнатуры в Haskell писать не обязательно, и всё будет работать без них.