Я изучаю Haskell, и это мои первые шаги в попытке понять синтаксис. У меня очень тяжелое время, и, к сожалению, ссылка на язык не очень полезна.Что возвращается с printf?
Я попытался сделать :type (line_length 1 2 3 4)
, и у меня есть красный reference on printf Однако он использует символы с неопределенным значением вместо слов. Итак, я застрял и попросил о помощи.
Простой: что я пишу вместо ???
.
line_length :: Integer -> Integer -> Integer -> Integer -> ???
line_length ax ay bx by =
printf ("The length of the line between the points" ++
"(%d,%d) and (%d,%d) is %.5f\n") ax ay bx by
((((fromIntegral (ax - bx)) ** 2.0) +
((fromIntegral (ay - by))) ** 2.0) ** 0.5)
Printf не является хорошим началом, если вы хотите изучить Haskell. Какой тип вы хотите 'line_length' для возврата? – augustss
BTW, '(^ 2)' лучше, чем '(** 2)', а 'sqrt' лучше, чем' (** 0.5) '. – augustss
Ссылка на язык, конечно, не очень хороший источник обучения для понимания синтаксиса. Вы не пробовали одну из простых книг/учебников, таких как [LYAH] (http://learnyouahaskell.com/), [RWH] (http://book.realworldhaskell.org/) или [YAHT] (http: //www.cs.utah.edu/~hal/htut/)? – leftaroundabout