Я немного смущен упражнением. Упражнение попросило функцию, которая будет принимать последний, но один элемент из списка, и показывает этот код как правильный ответ.Каков правильный способ записи функции haskell
myButLast :: [a] -> a
myButLast = last . init
myButLast' x = reverse x !! 1
myButLast'' [x,_] = x
myButLast'' (_:xs) = myButLast'' xs
myButLast''' (x:(_:[])) = x
myButLast''' (_:xs) = myButLast''' xs
myButLast'''' = head . tail . reverse
Но я только что сделал это, и он просто работал спросил
myButLast' = init[1,2,3,4]
myButLast'' = last myButLast'
Что все, что дополнительный код в первом растворе?