:yell "...Load example file" :load ./expl/PEPMExamples.hs :y "...I am now using higher-order functions as program schemes!" :s +enhanced :y "...Now I start to generalise the test examples" :y "...generalise 'addN'" :g addN :y "...generalise 'allodd'" :g allodd :y "...generalise 'and'" :g andL; :y "...generalise 'evens'" :g evens; :y "...generalise 'fib with add'" :g fib with fibAdd :y "...generalise 'hanoi'" :g hanoi :y "...generalise 'incr'" :g incr; :y "...generalise 'lasts'" :g lasts; :y "...generalise 'length'" :g lengtH; :y "...generalise 'lengths'" :g lengths :y "...generalise 'negateAll'" :g negateAll :y "...generalise 'odD, eveN'" :g odD, eveN :y "...generalise 'powset with powadd'" :g powset :y "...generalise 'reversE'" :g reversE; :y "...generalise 'reversE with last'" :g reversE with lasT; :y "...generalise 'reversE with append'" :g reversE with appenD; :y "...generalise 'reversE with snoc'" :g reversE with snoc :y "...generalise 'shiftl'" :g shiftl :y "...generalise 'shiftr'" :g shiftr :y "...generalise 'sum'" :g suM; :y "...generalise 'switch'" :g switch :y "...generalise 'zeros'" :g zeros; :y "...Now I do all again without using higher-order functions as program schemes!" :s -enhanced :y "...generalise 'addN'" :g; :t addN on "addN (S(S(S(S Z)))) [Z,S Z, S(S Z), S(S(S Z)), S(S(S(S Z))), S(S(S(S(S Z))))]" :y "...Now I to generalise the test examples" :y "...generalise 'allodd'" :y "...I was told to skip this, because it won't terminate after a reasonable time!" :y "...generalise 'and'" :y "...I was told to skip this, because it won't terminate after a reasonable time!" --:g andL; :y "...generalise 'evens'" :g evens; :y "..." Sorry, this is faulty!" :y "...generalise 'fib with add'" :g fib with fibAdd :y "...generalise 'hanoi'" :g hanoi; :y "...generalise 'incr'" :g incr; :y "...generalise 'lasts'" :g lasts; :y "...generalise 'length'" :g lengtH :y "...generalise 'lengths'" :g lengths:y "..." Sorry, this is faulty!" :y "...generalise 'negateAll'" :g negateAll :y "...generalise 'odD, eveN'" :g odD, eveN :y "...generalise 'powset with powadd'" :y "...I was told to skip this, because it won't terminate after a reasonable time!" -- :g powset :y "...generalise 'reversE'" :g reversE :y "...generalise 'reversE with last'" :g reversE with lasT; :y "...generalise 'reversE with append'" :g reversE with appenD :y "...generalise 'reversE with snoc'" :g reversE with snoc; :y "...generalise 'shiftl'" :g shiftl; :y "...generalise 'shiftr'" :g shiftr; :y "...generalise 'sum'" :g suM :y "...generalise 'switch'" :g switch :y "...generalise 'zeros'" :g zeros :y "That's all! Finished!" :q