Toy → 3종류의 terms로 이루어짐

DEFUN

모두 integer 형이기 때문에 반환형은 필요 없다.

Untitled

	(DEFUN ADD (x y)
				( M x (M 0 y) )
	)
	// ADD 는 함수명 (x y)는 인자(former parameter)
	// 이건 연산을 한게 아니라 등록을 위한 것이다.
	=> ADD
	// 잘 끝나면 인터프리터가 이름 보내줌
	
	(ADD 3 4); // 3 4 는 actuall parameter
	=> 7

Examples

(e2) Equal: parameter 2개

(M ( M 1 ( IF ( M x y ) 1 ) ) ( IF ( M y x ) 1 ) )

x > y :

x = y :

x < y :

(e4) ITE (if then else) : parameter 3개

(ADD (IF x y) ( IF (MINUS 1 x ) z ))

(e5) Times : prameter 2개

x * y = if (y >= 1) x + x*(y-1) 
			  else 0
			  
(DEFUN TIMES ( X Y ) 
		(ITE X (ADD Y (TIMES (M X 1) Y) 0)
)

함수언어에서는 재귀로 하는것을 좋아한다.

(e?) Factorier : 구현하는 게 시험일듯