У меня проблема с функцией, которая должна возвращать только хвост списка. Эти функции являются myTail и должны давать полезный результат, даже если вход представляет собой пустой список.Функция хвоста Haskell для пустых списков
Я хочу понять все 3 способа: соответствие шаблона, охраняемое уравнение и условные выражения
это работает:
> myTail_pat :: [a] -> [a]
> myTail_pat (x:xs) = xs
> myTail_pat [] = []
Но это:
> myTail_guard (x:xs) | null xs = []
> | otherwise = xs
дает мне ошибку: Программу error: ошибка совпадения шаблонов: myTail_guard [] Как я могу объявить функцию без шаблонов?
спасибо.
может помочь вам: http://cs.anu.edu.au/Student/comp1100/haskell/tourofsyntax.html# Охранники – Artelius
вы можете просто сделать 'myTail = drop 1' – newacct
Соответствующая версия шаблона больше похожа на haskell в любом случае. – Rayne