История изменений
Исправление 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 писать не обязательно, и всё будет работать без них.