Gå til innhold

[Løst] Haskell: Fra liste med strenger til liste med ASCII-nummer


Anbefalte innlegg

Hei! Går igjennom Anatomy of Programming Languages (http://www.cs.utexas.edu/~wcook/anatomy/anatomy.htm).

 

Ganske tidlig møter jeg på følgende oppgave: Question 7: Write a function that given a list of characters returns a list with the corresponding ASCII number of the character. Note that in Haskell, the function:

 

Jeg løser det slik:

 

asciiList :: (Char -> Int) -> [Char] -> [Int]
asciiList f [] = []
asciiList f (x:xs) = f x : asciiList f xs
Vi får:

 

Prelude> asciiList ord "Test"
[84,101,115,116]
Men jeg tror oppgaven ønsker at jeg ikke må gi funksjonen til GHCI, det vil si at jeg ikke skal måtte spesifisere "ord" til prelude, men heller gjøre dette i koden. Slik at:

 

Prelude> asciiList "Test"
[84,101,115,116]
Noen som vet hvordan jeg da må stokke om på koden? Hittil har jeg bare fått mange errorer. Eksempel:

 

asciiList :: [Char] -> (Char -> Int) -> [Int]
asciiList [] = []
asciiList (x:xs) = ord x : asciiList ord xs
Dette feiler med typefeil. Noen som har noen tips?

 

Edit: Glem det. Den rekursive delen trenger ikke funksjonen ord. Og ved å viske vekk typedeklarasjonen for så å spørre GHCI så finner jeg at den skal være [Char] -> [int] bare:

 

asciiList :: [Char] -> [Int]
asciiList [] = []
asciiList (x:xs) = ord x : asciiList xs
Moderator kan slette tråd. Endret av Denjam
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...