제스 4

[JESS] Jess deffunction (함수선언)

제스에서 사용자함수를 만들기 위해서 deffunction문을 앞에 써준뒤 함수명을 기능에 맞게 부여한뒤 사용하면 되는데 이역시 사용하는 방식을 일반함수와 비슷합니다. 2. 큰수를 구하는 함수 (deffunction test_fct(?x ?y) (if(> ?x ?y)then (return ?x) else (return ?y) ) ) (printout t"MAX : " (test_fct 100 200) crlf)어떤가요 함수 선언시 앞에 deffunction문이 붙는거이외에는 일반 저희가 선언할때랑 비슷하죠? 다만 제스에서는 return이 생략되도 ?x 값이나 ?y값을 리턴할수 있습니다. (if(> ?x ?y)then ?x else ?y ) 이런식으로 생략되도 ?x 와 ?y값은 리턴됩니다. 3. 리스트를 이..

。공부 。 2008.07.08

[JESS] Jess if-then-else

1. if함수 (bind ?num 100) (if (> ?num 95)then (printout t"A+" crlf) else (printout t"A+이 아닙니다." crlf) ) 위의 소스는 ?num이 95보다 크면 A+을 출력하라는 간단한 if함수의 예제 입니다. 선행표기법을 제외하면 일반 if문과 같다는것을 알수있습니다. 2. member$ (bind ?com-list (create$ 모니터 본체 스피커)) (if (member$ 본체 ?com-list)then (printout t"본체가 있습니다." crlf) else (printout t"본체가 없습니다." crlf) )일반리스트를 활용한 if함수 예제 입니다. 여기서 눈여겨 봐야 할 함수가 member$죠 member$는 member$ 바로..

。공부 。 2008.07.08

[JESS] Jess 반복문 (foreach, for, while)

C나 자바에서와 같이 제스 에서는 반복문이 존재 한다. foreach나 for문 while와 같은 함수가 말이죠. 1. foreach 함수는 일반리스트의 원소를 차례차례 한개씩 받아오는 함수이다. (bind ?com-list (create$ 모니터 본체 스피커)) (bind ?num 0) (foreach ?data-list ?com-list (printout t (++ ?num)" : " ?data-list crlf) )foreach 함수는 위와 같이 쓰인다. 첫번째줄에서 일반리스트를 선언해준뒤 두번째줄에서 카운터변수 ?num을 0으로 초기화 시켜주고 있다. foreach 함수의 첫번째 변수인 ?data-list는 ?com-list의 원소값 한개를 받아와 저장하게 된다. com-list의 원소가 nil이..

。공부 。 2008.07.08

[JESS] Jess 일반 리스트

jess 에서는 C나 자바에서와 비슷한 의미로 리스트라는걸 쓰더군요 아직 배우는수준이라 정확히 이녀석을 어디에 어떻게 쓰는지는 자세히는 모르지만 문법정도는 설명할수 있을거 같네요 1. 변수를 선언하듯 리스트를 선언해 줍니다. (bind ?com-list (create$ 모니터 본체 스피커)) create$ 라는 것이 보이죠? 이는 제스에서 일반 리스트를 생성할때 첫번째원소는 함수로 인식하기 때문에 (예를 들어 (+ 2 2) 에서 +를 함수로 인식하는것과 마찬가지) 이를 해결하기 위해 create$를 사용합니다. 함수앞에 '$' 가 붙으면 일반리스트를 제어하는 함수라 생각하면 쉽다. 이렇게 되면 ?com-list 의 첫번째원소는 모니터 두번째는 본체 그리고 세번째는 스피커되 되는것이죠 2. 리스트의 헤드와..

。공부 。 2008.07.08