jess 7

<JESS> Jess 에서 Java클래스를 사용해보자.

Jess 라는 인공지능 프로그램은 Java의 모든클래스를 객체화하여 사용할수 있다. 그 방법또한 어렵지 않아 쉽고 간단하게 객체를 만들어 사용할 수 있다. - Java의 파일클래스를 객체화하여 사용하기 - (bind ?file (new java.io.File file.txt)) (bind ?fr (new java.io.FileReader ?file)) (bind ?br (new java.io.BufferedReader ?fr)) (bind ?a (call ?br readLine)) (bind ?b (call ?br readLine)) (bind ?c (call ?br readLine)) (bind ?d (call ?br readLine)) (printout t"A : " ?a crlf) (printout..

。공부 。 2008.08.08

[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

[JESS] Jess 기초문법, bind, batch, printout

jess 는 lisp 이라는 언어 기반의 문법을 사용하더군요.. jess 에서는 기본적으로 변수선언 이라는것이 없습니다. 단지 변수를 선언할때 변수 앞에 '?' 만 붙여주면 끝 ' ?name' 이런식으로 사용하면 되는것이죠. 하지만 변수에 값을 할당할시에는 꼭 bind 라는 예약어를 사용해 변수를 사용 해야 하더군요 (bind ?name "kyoe") 이런식으로 말이죠 이렇게 처음과 끝에 괄호를 붙어 사용하는 방식을 리스트방식 이라고 했던거 같네요.. - 변수에 데이터 할당 - (bind ?age 25) (O) (bind ?age = 25) (X) (bind ?name "kyoe") (O) jess 에서의 변수는 어떤형식이든지 지원을 하기 때문에 특별히 변수 형식을 지정해줄 필요가 없습니다. C언어나 자..

。공부 。 2008.07.01

[JESS] Jess , 이클립스 연동

인공지능언어 JESS는 이클립스와 연동이 가능하다. 즉 도스 프롬프트창이 아니라 이클립스에서 프로그램 코딩이 가능하다는 것이죠. JESS는 한글로 표기된 설명이 드물기 때문에 이클립스와 연동이 가능하는 것 이외에는 한글로된 정보를 어디에도 찾아볼수가 없더군요.. 이틀을 헤멧나요? 결국엔 영어로된 자료를 해석했지요.. 네이버사전에서 단어하나하나 찾아가며 해석하기를 약 1시간! 드디어 한페이지를 해석.! 구굴에서는 번역해서 웹페이지를 띄워주는 기능있다는것을 한페이지 해석이 끝난뒤에야 알았습니다.. ㅡㅡ 자 그럼 Jess를 이클립스와 연동해 볼까요! 참! 이클립스는 깔려있어야 겠죠? 물론 jdk도 말이죠 Jess는 자바기반 언어이고 자바의 클래스를 사용할수 있다고 하네요 1. http://www.jessrul..

。공부 。 2008.06.27