#scala
#scala
Вопрос:
Я пытаюсь написать функцию, которая принимает две функции и объединяет их. Я попробовал решение ниже и несколько других вариантов, но без особого успеха.
def compose1[A, B, C](f: A => B, g: B => C)(x: A) = f(g(x))
Ошибка, которую я получаю, такова
<console>:21: error: type mismatch;
found : x.type (with underlying type A)
required: B
def compose1[A, B, C](f: A => B, g: B => C)(x: A) = f(g(x))
^
Полное раскрытие информации это часть университетского упражнения, предназначенного для обучения нас Scala, хотя это и не зачет. Вопрос действительно плохо сформулирован (это было буквально объявление функции и предложение, которое я использовал выше), и перед этим не было приведено никаких примеров или объяснений, я думаю, что у меня недостаточно хорошее понимание Scala, чтобы даже понять вопрос. Был бы очень признателен за некоторую проработку проблемы, спасибо за помощь!
Комментарии:
1. Возможно, вы захотите включить некоторые дополнительные сведения об ошибке, с которой вы столкнулись.
Ответ №1:
Внимательно посмотрите на типы: вы пытаетесь передать x
(ввести A
) функцию g
(которая принимает a B
и возвращает a C
). Я уверен, что вы можете забрать его отсюда.
Комментарии:
1. @stmfunk и не стесняйтесь отмечать ответ как правильный, если вы так считаете. 😉
2. нет проблем, просто нужно подождать несколько минут, чтобы это позволило мне