Three ways to implement the f acto rial function in SPL.
First the recursive version .
*/
-var r = 1;
-var facN = 1;
-var ok = True;
facR(n) :: Int -> Int {
if (n < 2) {
var ok = True;
while(n<20) {
facN = facR (n);
- if (facN != factl (n) || facn != facL (n)){
+ if (facN != factl (n) || facN != facL (n)){
print (n : facN : facl (n) : facL (n): []);
ok=False;
}
}
- print(ok);
+ //print(ok);
}
// A list based factorial function
abs(n)::Int->Int{if(n<0)return -n; else return n;}
//swap the elements in a tuple
-swap(tuple) :: (a, a) -> (a, a){
- var tmp = tuple.fst;
- tuple.fst = tuple.snd;
- tuple.snd = tmp;
- return tuple;
-}
+//swap(tuple) :: (a, a) -> (a, a){
+// var tmp = tuple.fst;
+// tuple.fst = tuple.snd;
+// tuple.snd = tmp;
+// return tuple;
+//}
//list append
append(l1, l2) :: [t] -> [t] -> [t] {