SA
Size: a a a
SA
SA
SA
(defun actually-last (list)
(when list
(destructuring-bind (first . rest) list
(if rest
(actually-last rest)
first))))
n
SA
SA
SA
(defun actually-last (list)
(if (null (rest list))
(first list)
(actually-last (rest list))))
n
SA
(defun lst (ls &aux (r (cdr ls)))
(or (and r (lst r)) (car ls)))
SA
a
values
возвращать, как всегда в таких случаях. Если у них там нет values
, могу только повторить утверждение про ебобо-курс.SA
SA
SA
SA
SA
foo :: [a] -> Maybe a
foo [] = Nothing
foo [x] = Just x
foo (x:xs) = foo xs
SA
(declaim (ftype (function (list) (values t boolean &optional)) haskfoo))
(defun haskfoo (list)
(cond ((null list) (values nil nil))
((null (cdr list)) (values (car list) t))
(t (haskfoo (cdr list)))))
a
(declaim (ftype (function (list) (values t boolean &optional)) haskfoo))
(defun haskfoo (list)
(cond ((null list) (values nil nil))
((null (cdr list)) (values (car list) t))
(t (haskfoo (cdr list)))))
SA
SA