반응형

1. Data type을 확인하고 맞으면 if문에 들어가도록 하는 예시문

타입에 맞는 데이터가 들어가는지 if문을 통해 조절 할 수 있다. 그 방법은 아래와 같다.

 

문자열 : string

정수   : fixnum

실수   : flonum

 

결과

반응형
반응형

기본적으로 함수를 만들기 위해서 procedure 라는 함수를 선언한다.

함수이름뒤에 함수에 입력되는 인자들을 선택한다.

procedure( FuncName( input1 input2 ...)

);

con함수는 해당 조건이 만족되면 바로 리턴하는 함수이다.

아래는 예제이다.

 

1.

결과

2.

결과

반응형
반응형

1. 파일 쓰기 outfile()

 

OS에게 명령을 내려 파일을 쓰게 할 수 있다.

print() 함수와 println() 함수는 기본적으로 모니터에 값을 출력하는 명령이지만, outfile()함수를 이용하면 출력 대상을 파일로 바꿀 수 있다. 이 두 함수는 2번째 옵션 인자로 포트 정보를 갖고있는 객체를 받는다.

1. outfile() 으로 파일을 생성함.

2. myPort가 그 파일에 대한 포트 정보를 갖고 있음

3. println( 출력값 myPort )  <= 여기서 2번째 인자로 myPort가 그 파일에 대한 포트를 열어줌.

4. close(myPort)  다 사용한 포트는 닫아줌.

결과. 현재경로에 해당 txt파일이 생성됨.

2. 파일 쓰기 옵션 (덮어쓰지 말고 뒤에 추가하기), outfile( 값 "a" )

 

1~5까지 쓰고 뒤에 16~20까지 쓰고 싶지만, 아래와 같이하면 안된다.

덮어 씌워지는 케이스, 

위에 함수가 실행되고 아래 함수가 실행되면, 마지막으로 실행된 파일 쓰기만 남게 된다.

결과

고로 아래와 같이 옵션인자로 "a" 를 outfile()함수의 2번째 인자로 넣어야 한다. append의 약자로 덧붙이다 이다.

그럼 아래와 같이 1~5뒤에 16~20이 이어서 출력된다.

결과

3. 포맷이 정해져있는 파일 쓰기

결과

 

4. 파일 읽고 프린트 하기.

위에서 만든 text파일(3번) 을 불러와서 인터프리터에서 출력한다.

결과

 

반응형
반응형

C언어 비슷한 논리문을 갖는다.

예시

if문 중복사용 (겹치기)

 

그러나 SKILL에서는 C언어와 다르게 when()문과 unless()문이 있다.

(함수가 정상적으로 실행되었으면 t를 반환한다)

when문 조건이 맞을 때

결과 출력후 t반환

when문 조건이 틀릴 때

t만 반환

unless문 조건이 틀릴 때

조건이 틀리니 hello world가 출력됨.

unless문 조건이 맞을 때

결과 t만 반환

 

Case문, 하나씩 비교해보면서 맞는 부분이 실행하고 t를 리턴하며 종료함.

alphabet = "a" 일때

alphabet = "b" 일때

alphabet = "c" 일때

alphabet = "d" 일때

해당 조건이 맞을때 print문이 출력되고 ++로 해당 변수가 증가함.

그외 조건이 맞지 않을때는 "this is not alphabet"이 실행되고 종료함.

반응형
반응형

 SKILL문법 List. 파이썬을 써본사람은 알겠지만, List는 여러 index를 입맛에 맞게 통제할 때 좋다.

SKILL에서 리스트는 소괄호로 표시된다. -> ( ) 

 

1. 리스트 만들기.

type( )함수로 해당변수를 찍어보면 list임을 확인할 수 있다.

delimeter(구분자)로는 공백도 되고 쉼표도 된다.

'( ) 는 내부에 연산자가 들어갈 수 없음

list( )는 내부에 연산자를 넣을 수 있음

 

    1-1. 리스트 내 인자 인덱싱(indexing)하기

리스트 내에 있는 값을 적절히 뽑아서 활용해야 한다. 인덱싱 하는방법으로는

nthelem( ) 함수를 쓴다.

변수 선언

* 파이썬과 다르게 0번이 아니라 1번부터 인덱싱을 시작한다.

* 파이썬은 List를 벗어나면 에러를 띄우지만, SKILL은 nil이 출력된다.

 

 

 

2. 리스트 줄 표시(line display) 내장 변수 _itemsperline

Default로 list를 찍어보면, 아래와 같이 한 라인에 표시하는 List 갯수를 제한해 놓았다.

Display방식만 그렇다는 것이다. 데이터가 바뀌거나 하지는 않는다.

아래에서 numlist 변수 내 1 ~ 9개 총 9개의 index가 들어있다.

1~9 리스트 출력

_itemsperline 내장된 변수에 값을 집어넣으면 딱 그에 맞는 List가 화면에 보여진다.

아래 예시는 _itemsperline값으로 2와  10을 넣었을 때, list가 어떻게 표시되는지에 대한 예시.

 

 

 

3. list() 함수 사용하기

   

    3-1. 리스트 만드는 방법중, list() 함수와 '( ) 방법의 차이

1.  list()함수로 만들면 리스트내 변수 속성이 그대로 따라간다.

2.  '( ) 으로 만들면 해당 변수 이름을 떠나 symbol type 으로 저장된다.

 

 

 

 

4. cons() 함수 사용하여 List내 인덱스 통제하기

몇가지  Test.

referenceList라는 리스트값을 지닌 변수를 기준으로, 아래와 같이 value(값), valueList(값이 들어있는 리스트), strList(문자열이 들어있는 리스트)를 추가하여 resultList에 대입해보았다.

변수,리스트 선언

 

 

5. reverse( 리스트변수 ),  값의 순서를 뒤집기.

아래를 보면 리스트 인덱스 순서가 뒤바뀐것을 볼 수 있다.

 

6. append( 리스트변수, 리스트변수 ), 두개의 리스트를 합치기

변수값 선언

결과 확인

오류 발생 케이스

1.  2번째 인자로 반드시 list를 넣어야 한다.

2.  1번째 인자로 반드시 list를 넣어야 한다.

3.  인자로는 반드시 2개만 넣어야 한다.

 

 

7. cons() 함수와 append()함수 테스트

 

 

** 리스트 함수 사용을 위한 인덱싱 함수들

리스트 선언, car, cdr 테스트

car cdr을 활용한 box좌표 뽑기

https://ansan-survivor.tistory.com/158?category=390224

 

[Cadence SKILL] SKILL 언어 point(점), line(선), Box(사각박스) 만들기

리스트를 활용하고 내장된 함수를 이용하여 기본적인 점, 선, 사각박스를 만든다. 1. 점(Point) 표현하기. 아래와 같이 (300, 400) 포인트를 아주 쉬운 방법으로 좌표값을 저장 하고자 할때, 콜론(:) 을

ansan-survivor.tistory.com

1번 index 출력, index 초과시 nil
member, lengh함수 Test
홀수 짝수 필터링 함수

8. 문장 String을 단어 String List로 쪼개기

단 여기서 쪼개서 나온 모든 인자는 List의 인덱스 형태로 나오게 된다.

결과

9. String으로 쪼개진 이 단어중 숫자만 골라서 연산하기.

  먼저 100과 200 String을 뽑아낸다.

" " 가 있으므로 이 결과값은 String이다.

String끼리는 서로 연산이 불가능하다.

고로 아래와 같이 evalstring() 함수를 이용해 숫자로 만드는 과정을 거친 후 계산한다.

결과

실수값도 잘 계산이 되는가 테스트 해보았다.

잘된다.

 

<추가> 실용적인 기능들

 - 리스트내 최대값과 최소값 뽑기

https://ansan-survivor.tistory.com/286

 

[Cadence SKILL] List에서 최대값(max)과 최소값(min)을 뽑는 방법. (LISP 문법)

Cadence SKILL은 LISP 언어를 기반으로 한다. 따라서 LISP에서 지원하는 문법들이 통한다. 어떤 리스트내에서 최대값과 최소값을 뽑는다. 최대값은 55, 최소값은 1 이므로 아래와 같이 결과가 리턴 (참��

ansan-survivor.tistory.com

 

 - 리스트 순서 정렬하는 방법 (숫자 또는 문자)

https://ansan-survivor.tistory.com/287

 

[Cadence SKILL] List를 Sorting(sort) 하기 \ 리스트 오름차순, 내림차순 정렬

Cadence SKILL user-reference에서 발췌. sort 함수 sortcar 함수 간단 테스트

ansan-survivor.tistory.com

 

 - 리스트 내부 인자 값을 바꾸는 법

https://ansan-survivor.tistory.com/288

 

[Cadence SKILL] 리스트 내 값을 변경 하기

리스트내 값을 변경하기 위한 함수로, rplaca 와 rplacd 두개의 함수가 필요하다. 테스트 결과

ansan-survivor.tistory.com

 

반응형
123

+ Recent posts