2017-05-23 1 views
0

Je souhaite supprimer n: ième feuilles d'un arbre général et quand il n'y a plus de congé sur l'arbre, obtenez une erreur. J'ai ce code:Suppression de i: noeuds d'un arbre général dans Haskell

entferne :: NBaum a -> NBaum a 
entferne (NBlatt i) int | i == int 
          | otherwise = NBlatt i 
entferne (BKnoten left right) int = BKnoten (entferne left 
int) (entferne right int) 

Mais je reçois cette erreur:

parse error on input `|` 

J'ai vérifié le changement fait tous les espaces avec l'espace et encore l'obtenir.

+0

Cela ne fonctionne tout simplement pas, sauf si vous voulez dire 'entferne' pour appeler' error' et bloquer le programme. Il n'y a aucun moyen de renvoyer une erreur, sauf si vous le changez en 'NBaum -> Maybe NBaum'. – Davislor

Répondre

0

La ligne

entferne (NBlatt i) int | i == int 

manque une valeur retournée pour ce cas. Il devrait être

entferne (NBlatt i) int | i == int = <some value here> 
0

Un problème est que la ligne

entferne (NBlatt i) int | i == int 

est un gardien de modèle. Il doit être suivi de =, puis d'une expression pour calculer ce cas.