В дополнение к kongo2002:
Последний элемент в цепочке ->
является return type
, , а не другим аргументом. Первый принимает два числа с плавающей точкой и возвращает число с плавающей точкой, а второй принимает одно число с плавающей точкой и возвращает одно.
Идея сделать это так, а не что-то вроде (float, float) : float
, заключается в том, что вы можете использовать концепцию, называемую "карри". generatePowerOfFunc
имеет тип float -> float -> float
, что эквивалентно float -> (float -> float)
, поэтому мы можем дать ему один float и вернуть функцию типа float -> float
(и мы можем дать ему еще один float и вернуть обратно float ).
Это означает, что когда вы звоните generatePowerOfFunc 2. 4.
, вы применяете дважды . После того, как вы примените 2.
, и после того, как вы примените 4.
.