объявление типов ограничений / полиморфных c в Common Lisp - PullRequest
1 голос
/ 18 февраля 2020

В Haskell (и куриная схема ) вы можете объявить ограниченные типы, например, map :: (a -> b) -> [a] -> [b] объявляет, что map примет список, содержащий тип ввода функции, и вернет список содержащий вывод функции. Возможно ли то же самое в обычных объявлениях функций lisp? Могу ли я сделать что-то похожее на это:

(declaim (ftype (function (function (a) b)
                          (list a))
                (list b)
                map))

"Вы не можете этого сделать" будет удовлетворительным ответом:)

1 Ответ

2 голосов
/ 18 февраля 2020

Не в одном объявлении типа. У нас нет переменных типа.

...