home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
ckscripts
/
sexp
< prev
next >
Wrap
Lisp/Scheme
|
2020-01-01
|
4KB
|
203 lines
set take echo on
set sexp echo on
(pi)
(t)
(nil)
()
(setq a 2 b -1.3)
(+ a b)
(- 9 5 2 1)
(* a (+ b 1) 3)
(/ b a 2)
(^ 3 2)
(++ a 1.2)
(-- a)
(setq a 2 b -1.3)
(abs (* a b 3))
(max 1 2 3 4)
(min 1 2 3 4)
(mod 7 4 2)
(float 1)
(truncate 3.333)
(ceiling 1.25)
(floor 1.25)
(round 1.75)
(sqrt 2)
(exp -1)
(sin (/ pi 2))
(cos pi)
(tan pi)
(log 2.7183)
(log10 1000)
(++ a)
(++ a 2)
(-- a (* 2 pi))
(++ a 1 b 1 c 1 d)
(= 1 1.0)
(!= 1 1.0)
(< 1 2 3)
(<= 1 1 2 3)
(> 3 2 1)
(<= 3 3 2 1)
(and 1 1 1 1 0)
(or 1 1 1 1 0)
(xor 3 1)
(not 3)
(& 7 2)
(| 1 2 3 4)
(# 3 1)
(~ 1)
(if (1) 2 3)
(if t () t)
(if t t ())
(if nil t ())
(if nil nil nil)
set sexp echo off
(setq t1 \v(ftime))
echo T LOOP START \m(t1)...
(setq a 0 b 0 c 0 d 0)
for \%i 1 10 1 {
(setq x (+ \frandom(\%i) 1))
(setq a (+ a x))
(setq b (+ b (^ x 2)))
(setq c (+ c (* x 2)))
(setq d (+ d (/ x 2)))
}
(setq t2 \v(ftime))
echo T LOOP END \m(t2)...
show mac a b c d
echo TIME = \fsexp(- t2 t1)
set sexp echo on
(setq a 1.5)
(setq b 2.3)
(setq i 3)
(setq j 4)
(+ a b)
(= a b)
(= a 1.5)
(+ a j)
(+ j i)
(* a b)
(- a b)
(* 1000 (- a b))
(/ a b)
(mod a 1)
(^ a b)
(/ 10 3)
(/ 10.0 3)
(exp 1)
(exp 2)
(\v(math_pi))
(exp \v(math_pi))
(exp pi)
(setq a 2)
(setq b 3)
(setq c (+ a b))
(* (+ a b) (- c a))
(^ b a)
echo {----}
(- 2)
(+ 2)
(* 2)
(/ 2)
(setq \\%a (* (+ a b) (- c a)))
echo \%a
(setq \\%b (^ \%a 3))
echo \%b
(< a b)
(> a b)
(= a b)
(= a 2)
set sexp echo off
set take echo off
echo STARTING STATS \v(ntime)...
dcl x = 2.7 3.14 -0.02 12.5 10 9 8 0 -4.2 3.1 10.01 6.666
dcl y = 8.3 4.00 9.413 0.22 11 3 8 9 12.8 7.8 23.99 3.333
(setq xsum 0 ysum 0 xsum2 0 ysum2 0 xysum 0)
(setq xmin (setq xmax \&x[1]) ymin (setq ymax \&y[1]))
(setq n \fdim(&x))
; Loop through elements and accumulate sums, maxima, and minima
for i 1 n 1 {
(setq x \&x[i] y \&y[i]) ; Notational convenience
(setq xmax (max xmax x) ymax (max ymax y)) ; X and Y maxima
(setq xmin (min xmin x) ymin (min ymin y)) ; X and Y minima
(++ xsum x ysum y) ; X and Y sums
(++ xsum2 (^ x 2) ysum2 (^ y 2)) ; Sum of X and Y squares
(++ xysum (* x y)) ; Sum of XY products
}
; Calculate results
(setq xmean (/ xsum n)) ; Mean X
(setq ymean (/ ysum n)) ; Mean Y
(setq xss (- xsum2 (/ (^ xsum 2) n))) ; Intermediate values
(setq yss (- ysum2 (/ (^ ysum 2) n)))
(setq xyss (- xysum (/ (* xsum ysum) n)))
(setq xvar (/ xss n)) ; X variance
(setq yvar (/ yss n)) ; Y variance
(setq sdx (sqrt xvar)) ; Std deviation in X
(setq sdy (sqrt yvar)) ; Std deviation in Y
(setq tmp (* xss yss))
(setq cc (if tmp (/ xyss (sqrt tmp)) 1.0)) ; Correlation coefficient
echo STATS DONE \v(ntime)...
sho mac xmean ymean xvar yvar sdx sdy cc
echo Macros...
set tak ec on
set sexp ec on
define abc echo This is \%0
(abc)
(abc)
define def (* \%*)
(def 2 3 4)
define ghi (* \%*), return \v(svalue)
(ghi 4 5 6)
define objective return \fsexp(> \%1 100)
define raise Echo Give a raise
define demote Echo Take back company car
define evaluate (if (objective \%1) raise demote)
(setq result 120)
(evaluate result)
(setq result 90)
(evaluate result)
echo
(.)
(..)
(. .)
(+)
(++)
(+ +)
define FIBONACCI {
if < \%1 2 return \%1
return \fsexp(+ (fibonacci (- \%1 2)) (fibonacci (- \%1 1)))
}
(fibonacci 6)
(setq a 2 b 4)
(setq x (fibonacci (* a b )))
echo
echo Done.