January 17 2007  水曜日

    技术2022-05-11  112

      The strictness flag !, can only appear in data declarations.  It cannot be used in other type signaturesor in any other type definitions.  There is no corresponding way to mark function arguments as being strict,although the same effect can be obtained using the seq or !$functions.

      Strictness flags may be used to address memory leaks: structures retained by the garbage collector but nolonger necessary for computation.  Laziness is one of the fundamental properties of Haskell and adding strictnessflags may lead to hard to find infinite loops or have other unexpected consequences.

      Actions are sequenced using an operator that has a rather cryptic name: >>= (or 'bind').  Instead of usingthis operator directly, we choose some syntactic sugar, the do notation, to hide these sequencing operatorsunder a syntax resembling more conventional languages.  The do notation can be trivially expanded to >>=. 


    最新回复(0)