let melody = slow 6 $ "0 2 [4 8 .] [3 4 3] 8 4 9" d4 -- $ rev \n $ note ((scaleP scalePattern -- $ off 4 ((+ 2 ).slow 2) \n -- $ off 1 (inversion.slow 2) \n $(rotR 1.5 ) $(+ slow 8 "x" <~> generateMelodicSeed) -- $ inversion \n $ generateMelodicSeed ))#s "[pe-gtr:12,midi]" #gain 1.2 #orbit 3 #midichan 4 do cps (86/60/2) d9 $ midicmd "midiClock*48" # s "midi" let melody = slow 6 $ "0 2 [4 8 .] [3 4 3] 8 4 9"
index > /home/xinniw/Documents/garden/Lazy Evaluation.md

Lazy Evaluation

:cc0:

Many functional languages enable code to be evaluated lazily by default. This means the code is not executed until the moment when the final return value is needed for interaction with the outside world. This enables functions to manipulate otherwise impossible data structures, such as infinite lists, so long as, by the time the final call is made, the functions are composed in such a way the limits the size of the data. Lazy evaluation pairs well with closures and partial application in enabling the programmer to compose functionality together.


index > /home/xinniw/Documents/garden/Lazy Evaluation.md