Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I hadn't thought of that. Types serve as a good safety net, but they're not foolproof. Expecting something like that to be correct because it passed through the type checker is like expecting to be served at a restaurant dressed in a gorilla suit because you got through the door.


And of course it is fun to think about total functions that are "effectively" bottom...

    id :: a -> a
    id a = case (a,ack 4 3) of
        (x,0) -> x
        (x,_) -> x
        where
            ack 0 n = n+1
            ack m 0 = ack (m-1) 1 
            ack m n = ack (m-1) (ack m (n-1))




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: