Dan Weston | 17 May 00:08

Re: Re: Write Haskell as fast as C.

Ketil Malde wrote:
>> mkAnn :: ByteString -> Annotation
>> mkAnn = pick . B.words
>>     where pick (_db:up:rest) = pick' up $ getGo rest
>>           pick' up' (go:_:ev:_) = Ann (B.copy up') (read $ B.unpack go) (read $ B.unpack ev)
>>           getGo = dropWhile (not . B.isPrefixOf (pack "GO:"))

It seems at first face miraculously coincidental that the dropWhile in 
the getGo definition knows to stop dropping when there are exactly 4 
elements, in order to match the pattern in the second parameter of the 
pick' definition, whose argument is provided by (getGo Rest).

What magic makes this true? Just curious...

Gmane