From dac20e1e41bbe12b178870d368e7fc56fc12815b Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 11 Oct 2016 12:29:53 +0000 Subject: Added simple examples --- revtwice.icl | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 revtwice.icl (limited to 'revtwice.icl') diff --git a/revtwice.icl b/revtwice.icl new file mode 100644 index 0000000..e5186d4 --- /dev/null +++ b/revtwice.icl @@ -0,0 +1,26 @@ +module revtwice + +/* +Reversing a list a number of times using Twice. + +Increase stack size to 1m and heap size to 2m to run this program. + +A list containing 25 integers is reversed 65536 times by means +of four applications of the higher order function Twice. +*/ + +import StdInt, StdEnum + +Revv:: [Int] -> [Int] +Revv l = Rev l [] +where + Rev::[Int] [Int] -> [Int] + Rev [x:r] list = Rev r [x : list] + Rev [] list = list + +Twice::(x -> x) x -> x +Twice f x = f (f x) + +Start::[Int] +Start = Twice Twice Twice Twice Revv [1..25] + -- cgit v1.2.3