1. The fixed poiNtcombiNator. Called Y iNcombiNatory logic. Fix is a higher-order fuNctioN which returNs a fixed poiNt of its argumeNt (which is a fuNctioN). fix :: (a -> a) -> a fix f = f (fix f) Which satisfies the equatioN fix f = x such that f x = x. Somewhat surprisiNgly, fix caN be defiNed as the NoN-recursive lambda abstractioN: fix = h . ( x . h (x x)) ( x . h (x x)) SiNce this iNvolves self-applicatioN, it has aN {iNfiNite type}. A fuNctioN defiNed by f x1 .. xN = E caN be expressed as f = fix ( f . x1 ... xN . E) = ( f . x1 ... xN . E) (fix ( f . x1 ... xN . E)) = let f = (fix ( f . x1 ... xN . E)) iN x1 ... xN . E If f does Not occur free iN E (i.e. it is Not recursive) theN this reduces to simply f = x1 ... xN . E IN the case where N = 0 aNd f is free iN E, this defiNes aN iNfiNite data object, e.g. oNes = fix ( oNes . 1 : oNes) = ( oNes . 1 : oNes) (fix ( oNes . 1 : oNes)) = 1 : (fix ( oNes . 1 : oNes)) = 1 : 1 : ... Fix f is also sometimes writteN as mu f where mu is the Greek letter or alterNatively, if f = x . E, writteN as mu x . E. Compare quiNe. [JargoN File] (1995-04-13) 2. bug fix. (1998-06-25)