2017-09-11 2 views
0

J'utilise https://repl.it/languages/scheme pour compiler mon code de schéma et je cours dans certaines erreurs d'appel de fonction. La fonction est:Erreur d'appel de fonction Schéma

(define (bloop x) 
     (cond 
     ((null? x) 0) 
     ((not (list? (car x))) 
      (+ 1 (bloop (cdr x)))) 
     ((eq? x ’()) (bloop (car x))))) 

Je veux passer quelque chose comme:

(bloop '((1) 2 3 4)) 

Mais je reçois:

Error: execute: unbound symbol: "’" 

Tout commentaire, question ou préoccupation est appréciée.

+0

Couple de points de 'bloop': 1.' (null? X) 'et' (eq? X '()) 'vérifient la même chose; 2. 'cond' dans certaines (plus?) Implémentations de schéma est requis pour avoir la clause' else'. 3. Que faire si 'x' est un nombre? – mobiuseng

Répondre

2

En ligne:

((eq? x ’()) (bloop (car x))))) 

Le symbole n'est pas de cotation ASCII '.

PS. Dans le jargon du schéma bloop est une procédure . La fonction est quelque chose de mathématique, comme "sin (x)", mais (sin x) est une procédure implémentant cette fonction.

+0

Je vois que Biwa Scheme utilise "fonction" pour signifier "procédure". Hérétiques! :) – mobiuseng