## Tuesday, June 22, 2010

Hi, it is Dr. NISHIO Hirokazu. Today I made a quiz. See following code and answer the definitions of a, b, c and d.

`main = do  print \$ a + c == 0 -- True.  print \$ a == c     -- True. a == c == 0.  print \$ c == 0     -- True. Of course.  print \$ a + d == 1 -- True. d == 1.  print \$ b + c == 1 -- True. b == 1.  print \$ b + d == 0 -- True. What happened?!  print \$ b == d     -- True. ?!  print \$ d == 0     -- True. ?!?!  -- hints to make answer unique (perhaps...)  print \$ sum([a, b, c])  -- 1  print \$ sum([a, b, d])  -- 1  print \$ [a, b, c] !! a  -- 0  print \$ [a, b, c] !! b  -- 1  print \$ [a, b, c] !! c  -- 0`

I swear:

• I didn't define (+)
• I didn't define (!!)
• I didn't define (==)
• I didn't define sum
• I didn't define print
• I didn't define (\$) -- @kmizu sent me a valid solution and he defined (\$). I didn't.
• I didn't use default -- @camlspotter said it may use defaulting, and I didn't know it. I agree with him that it would be easier if I used defaulting. But I didn't. I didn't use default defaulting (i.e. default ordering of Integer and Double) For more detail, see http://www.haskell.org/onlinereport/decls.html#sect4.3.4

All of them are original, came from the prelude module.

The answer will be published on the blog at least 1 week after.