인터프리터 방식을 흉내내어 봣는데

-help 를 치면 도움말이 나온다.

func.infix 파일은 몇가지 함수를 계산기 문법으로 짜본것이다.

안타깝게도 주석을 달수가 없음

그래서 지금 이글에 달아봄

((x >= y) def (1 if(x > y) (x == y)));                 ">=" 함수를 정의
((x <= y) def ((x == y) if(x < y) 1));                  <= 함수를 정의
((x ^ y) def ((x * (x ^ (y - 1))) if(y > 0) 1));        x의 y승 같은 지수승 함수 정의
((x = y) def (x def y));                                     def를 = 로도 쓰기


((x SumOf1~x y) def ((x + ((x - 1) SumOf1~x y)) if(x > 0) 0));    1부터 x까지 더하는 함수

((i PI/2 limit) def (                         walis product 에 의해 PI/2를 구하는 함수
(((4 * (i * i)) / 
(((2 * i) - 1) * ((2 * i) + 1))) * ((i + 1) PI/2 limit)) 
if(i < limit) 
1));

((n fib y) def ((((n - 1) fib y) + ((n - 2) fib y))  피보나치 함수
if(n > 2) 
(2 if(n == 2) (1 if(n == 1) 0))));


(PI? = ((1 PI/2 8100) * 2));  파이값

(FIB5? = (5 fib 0));         피보나치 5번째 수는 무엇?


((xn xn+1 a) = ((1 / 2) * (xn + (a / xn))));         제곱근을 구하기위한

((limit sqrt2 expr) def (((limit - 1) sqrt2 (expr xn+1 2)) if(limit > 0) expr));   2제곱근에 가까운 값을 얻기위해 limit까지 반복하는 함수

(SQRT2? = (5 sqrt2 1));  2제곱근은?


(1+..+100 = (100 SumOf1~x 0));  1부터 100까지 더하면?

1+..+100;   출력

FIB5?;     출력

SQRT2?;  출력

PI?;    출력


Posted by 멍충한아싸

댓글을 달아 주세요