2010-05-07 27 views
5

I zadeklarowały własny typ:opcjonalne argumenty w Haskell

data Book = Bookinfo { 
       bookId :: Int, 
       title :: String 
      } deriving(Show) 

i teraz:

x = Bookinfo 

to wszystko jest ok, ważne oświadczenie

ale co bookId X zgłasza błąd.

Gdybym był w stanie poradzić sobie z błędami w Haskell, które byłyby ok, ale teraz nie mogę tego zrobić Więc jestem ciekawy jak sprawić, aby nie określone wartości pól przyjmowały wartość domyślną i jaka jest dokładnie wartość, gdy jestem nie dając vcalues ​​pól w construcotr?

dzięki za pomoc

+1

Podobne pytanie: http://stackoverflow.com/questions/7781096/is-there-a-better-way-to-have-optional-arguments-in-haskell – MatrixFrog

Odpowiedz

12
-- this one is not a Book but actually a function that can make one: 
alternativeCtrFunc = Bookinfo 

defaultBook = Bookinfo { bookId = 3, title = "Welcome to the Monkey House" } 

x = defaultBook 
y = defaultBook { bookId = 7 } 
z = defaultBook { title = "The Cider House Rules" } 
Powiązane problemy