Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
35
Task/Arithmetic-Rational/Ol/arithmetic-rational.ol
Normal file
35
Task/Arithmetic-Rational/Ol/arithmetic-rational.ol
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
(define x 3/7)
|
||||
(define y 9/11)
|
||||
(define z -2/5)
|
||||
|
||||
; demonstrate builtin functions:
|
||||
|
||||
(print "(abs " z ") = " (abs z))
|
||||
(print "- " z " = " (- z))
|
||||
(print x " + " y " = " (+ x y))
|
||||
(print x " - " y " = " (- x y))
|
||||
(print x " * " y " = " (* x y))
|
||||
(print x " / " y " = " (/ x y))
|
||||
(print x " < " y " = " (< x y))
|
||||
(print x " > " y " = " (> x y))
|
||||
|
||||
; introduce new functions:
|
||||
|
||||
(define (+:= x) (+ x 1))
|
||||
(define (-:= x) (- x 1))
|
||||
|
||||
(print "+:= " z " = " (+:= z))
|
||||
(print "-:= " z " = " (-:= z))
|
||||
|
||||
; finally, find all perfect numbers less than 2^15:
|
||||
|
||||
(lfor-each (lambda (candidate)
|
||||
(let ((sum (lfold (lambda (sum factor)
|
||||
(if (= 0 (modulo candidate factor))
|
||||
(+ sum (/ 1 factor) (/ factor candidate))
|
||||
sum))
|
||||
(/ 1 candidate)
|
||||
(liota 2 1 (+ (isqrt candidate) 1)))))
|
||||
(if (= 1 (denominator sum))
|
||||
(print candidate (if (eq? sum 1) ", perfect" "")))))
|
||||
(liota 2 1 (expt 2 15)))
|
||||
Loading…
Add table
Add a link
Reference in a new issue