반응형

 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

 

반응형

+ Recent posts