У меня есть функция Haskell, которую я пытаюсь преобразовать в Scala.Haskell Тип функции Подпись в Scala
В Haskell у вас есть функция, как:
trifecta :: (a->b) -> (b->c) -> (c->d) -> a -> d
Я не нашел ничего в Интернете о преобразовании этих видов типа подписи в Scala.
Это то, что я сделал до сих пор, но я не совсем уверен, что это правильно.
Scala Код:
def trifecta[A,B,C,D](a: (A=>B), b: (B=>C), c: (C=>D), d: A): D = {
trifecta(a, b, c, d)
}
Я бы очень признателен, если вы, ребята могли бы мне помочь прояснить этот вопрос. Спасибо!
Допустим, я хочу, чтобы выполнить код с 'тройной выигрыш ((+1) , (+3), (+4), 8) '. Почему я получаю ошибки? Я хочу, чтобы функция выполняла три функции и переменную. – rribeiro
@rribeiro - Scala не поддерживает такие разделы, как '+ 1' в Haskell. Вы можете предоставлять функции, но средство проверки типов не может выводить типы аргументов без какого-либо окружающего контекста. Вы можете сделать 'trifecta ((i: Int) => i + 1, (i: Int) => i + 3, (i: Int) => i + 4, 8)' – Lee
Спасибо, за помощь! – rribeiro