Gå til innhold

Anbefalte innlegg

Jeg holder på med en obligatorisk oppgave i Standard ML og finner ikke ut av følgende:

 

Jeg har funksjonen finne:

 

fun Finne(x: char, t: char list)=

if hd t = [] then []

else if x = hd t then tl t

else Finne (x, tl t)

;

 

Tolkerern gir meg følgende feilmelding:

 

Error operator and operand don't agree [tycon mismatch]

operator domain: char * char

operand: char * 'Z list

in expression:

hd t = nil

-

 

Noen som har en forklaring på dette?

 

Takknemlig for all hjelp jeg kan få!

Lenke til kommentar
Videoannonse
Annonse

Hvis du ikke har funnet det ut allerede:

 

Du kan ikke sammenligne hd t med []. Bare lister kan ha verdien [] eller nil. Men du kan jo f.eks. bruke t = [] eller tl t = []

 

fun Finne(x: char, t: char list)=
if t = [] then []
else if x = hd t then tl t
else Finne (x, tl t);

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...