Je suis familier avec Common Lisp et j'essaie d'apprendre quelques Scheme, donc j'ai essayé de comprendre comment j'utiliserais Scheme pour les choses que je code habituellement dans Common Lisp.Comment savoir si la valeur d'une variable est un symbole lié à une procédure dans Scheme?
En Common Lisp, il y a fboundp
, qui me dit si un symbole (la valeur d'une variable) est lié à une fonction. Donc, je voudrais faire ceci:
(let ((s (read)))
(if (fboundp s)
(apply (symbol-function s) args)
(error ...)))
Est-ce possible dans le schéma? J'ai essayé de trouver cela dans les spécifications de R6RS mais je n'ai rien trouvé de similaire.
HEY, ça marche! :-) Et après avoir stocké le résultat dans une variable p, je peux simplement l'utiliser comme une procédure, comme dans "(p ag1 arg2)". Merci! – Jay
ne fonctionne pas en CL (SBCL), car _eval_ appelé sur un symbole non lié donne une erreur. En CL on devrait utiliser _boundp_ – dbow
@dbow la question déjà posée que dans Common Lisp vous utilisez boundp et fboundp; la question était de savoir comment le faire dans * Scheme *, et cette réponse lui répond directement – xdavidliu