Итак, я использовал Haskell только для простых учебных пособий до сих пор, а приведенный ниже код дает мне «ошибку синтаксического анализа» ... Я знаю, что это связано с моим синтаксисом, но у меня нет идея, чтоНачальная проблема с синтаксисом Haskell
--ternarySearch
7 ternarySearch :: (Float -> Float) -> Float -> Float -> Float -> Float
8 ternarySearch f a b tau = do
9 if (abs(b-a) < tau)
10 then return ((a+b)/2)
11 c = (a + (b-a)/3)
12 d = (b - (b-a)/3)
13 if f(c) < f(d)
14 then return (ternarySearch f c b tau)
15 else return (ternarySearch f a d tau)
ошибка я получаю:
ternary.hs:11:25: parse error on input `c'
Любые идеи?
Вы делаете много вещей не так: do-notation без использования Monad, Indendation, если/else не так. Я бы посоветовал вам изучить Haskell, используя любой учебник/книгу, прежде чем тестировать в нем программы. – Sibi
Да, к сожалению, это один из моих первых набегов на язык. Для начала: как должен выглядеть отступ? Это, безусловно, одна из главных проблем, которые вызывают у меня проблемы. – otg6e
nvm Я думаю, что у меня есть indentaion, но моя основная проблема остается неизменной: что вызывает ошибку синтаксического анализа? – otg6e