Season 1 아카이브/프로그래밍
                
              Getting Started with CLISP (10) - Car, Cdr, List Function
                문장전달자
                 2017. 9. 16. 12:08
              
              
                    
        728x90
    
    
  The car and cdr Functions
리스트는 2개의 아이템으로 구성된 셀의 긴 체인과도 같다. car 함수는 셀에서 첫 번째 아이템을 꺼낼 때 사용된다.
1 2  | [33]> (car '(pork beef chicken)) PORK  | cs | 
이에 반해 cdr 함수는 리스트의 첫 번째 아이템을 제거한다.
1 2  | [35]> (cdr '(prok beef chicken)) (BEEF CHICKEN)  | cs | 
그리고 car 과 cdr 을 결합하여 cadr, cdar, cadadr 같은 함수를 만들어낼 수도 있다. cadr 의 경우 car 와 cdr 을 동시에 쓰는 것과 같다. cadr 의 경우 리스트의 두 번째 아이템을 뽑아낸다. 다음의 예를 보자.
1 2 3 4 5 6  | [37]> (cadr '(pork beef chicken)) BEEF [37]> (cdr '(pork beef chicken)) (BEEF CHICKEN) [37]> (car '(beef chicken)) BEEF  | cs | 
1 2  | [38]> (car (cdr '(pork beef chicken))) BEEF  | cs | 
만약 chicken 을 뽑아내고 싶다면 다음과 같이 cddr 을 이용하면 된다.
1 2  | [40]> (cddr '(pork beef chicken)) (CHICKEN)  | cs | 
The list Function
앞선 3개의 리스트 함수외에 유용한 함수가 하나 있는데, 바로 list 함수이다. list 함수를 통해 생성된 리스트나 콘셀을 통해 생성된 리스트 양자간에 아무런 차이가 없다.
1 2  | [41]> (list 'pork 'beef 'chicken) (PORK BEEF CHICKEN)  | cs | 
728x90