Пожалуйста, решите эти ошибки. Я использую компилятор dev ++ [закрыто]

В двух словах, шаблоны похожи на определение кусочных функций в математике. Вы можете указать разные тела функций для разных аргументов, используя шаблоны. Когда вы вызываете функцию, соответствующий орган выбирается путем сравнения фактических аргументов с различными шаблонами аргументов. Прочтите Нежное введение в Haskell для получения дополнительной информации.

Сравнить:

Fibonacci sequence [/g2]

с эквивалентом Haskell:

fib 0 = 1
fib 1 = 1
fib n | n >= 2 
      = fib (n-1) + fib (n-2)

Обратите внимание, что « n ≥ 2» в кусочной функции становится защитой в версии Haskell, но два других условия являются просто шаблонами. Шаблоны - это условия, которые проверяют значения и структуру, такие как x:xs, (x, y, z) или Just x. В кусочном определении условия, основанные на = или отношениях (в основном, условия, которые говорят что-то », являются« чем-то другим), становятся образцами. Охранники допускают более общие условия. Мы могли бы переписать fib для использования охранников:

fib n | n == 0 = 1
      | n == 1 = 1
      | n >= 2 = fib (n-1) + fib (n-2)

-11
задан halfer 4 December 2016 в 20:25
поделиться