| |
|
| [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언어나 자바에서는 변수에 데이터 할당시 age = 25 이런식으로 '=' 기호를 써서 데이터를 넣을수 있었는데 jess 에서는 '='을 사용하게 되면 에러가 발생합니다.
- 전역변수 선언 및 데이터 할당 - (defglobal ?*temp* = 100) 변수 선언시 '?* *' 이런형식으로 선언하며 데이터할당시 '='을 사용합니다. 일반 변수는 (reset)을 사용하면 사라지게 되지만 전역 변수는 (reset) 명령어를 사용해도 메모리상에서 지워지지 않습니다.
- 데이터 출력 (printout) - (printout t"결과값2 : " ?age crlf) (printout t"결과값5 : " ?*imsi* crlf) 위와 같이 printout 문을 사용해서 변수에 할당된 데이터를 콘솔창에 출력 할수있습니다.. 여기서 't' 는 콘솔창에 출력하는 뜻이고, crlf는 한줄 개행입니다.. ""를 쓰지않고 문자열을 출력할수도 있지만 만약 그렇게 할시에는 공백없이 문자열이 출력됩니다.
- 연산 (선행표기법 사용) - JESS : (bind ?x(+(+ 2 2)(* 3 3))) C언어 : x = (2+2) + (3*3) 이렇게 jess에서는 lisp언어에서와 마찬가지로 선행표기법을 씁니다..
- batch - batch 는 확장자가 *.clp인 파일을 불러들어 사용할수 있습니다. 만약 hello.clp 파일에 다음과 같은 소스가 있다면 (printout t"Hello World!"crlf) 다른 파일에서는 다음과 같이 (batch hello.clp) hello.clp 파일을 불러들어 사용할수 있는것입니다. 실행시키면 당연히 'Hello World' 가 출력 되겠죠? |
|
| Track this back : http://kyoe.tistory.com/trackback/133 |
|
|
|
|
|
Total : 57,852
Today : 46
Yesterday : 77 |
|
|
 |
 |
 |
|