6
votes

Numéro simple avec SUPSEQ (LISP)

Je viens de commencer à utiliser Lisp, venant d'un arrière-plan en C. Son été amusant, bien que avec une courbe d'apprentissage incroyable (je suis un débutant d'emacs aussi).

Quoi qu'il en soit, j'ai une question idiote avec le code suivant pour analyser inclure des instructions de la source C - si quelqu'un peut commenter cela et suggérer une solution, cela aiderait beaucoup. P>

"#include <stdio.h>"


0 commentaires

3 Réponses :


1
votes

Je trouve remplacer-in-string code> beaucoup plus facile.

(replace-in-string "#include <stdio.h>" "#include +" "")
    => "<stdio.h>"


2 commentaires

Où est 'Remplacer-in-string' - est-ce une fonction standard? J'utilise la fermeture commune Lisp sur Darwin.


Oh je pensais que tu utilisais Elisp.



6
votes
(defun include-start (line)
  "returns the string position after the '#include ' directive or nil if none"
  (let ((search-string "#include "))
    (when (search search-string line)
      (length search-string))))

(defun get-include (line)
  (let ((s (include-start line)))
    (when s
      (subseq line s))))

1 commentaires

gifle frontal Bien sûr, ma logique n'était tout simplement pas fausse - nous verrons à quel point le jour va :-)



1
votes
(defun get-include (s)
   (subseq s (mismatch "#include " s)))

0 commentaires