아래의 글은 마틴 오더스키,렉스 스푼,빌 베너스 공저 / 오현석,이동욱,반영록 공역, 『Programming in Scala 3/e』,에이콘출판사(2017), CH01의 내용을 기반으로 작성하였습니다.

 

리스트 특징

리스트는 변경 불가능

리스트 구조는 재귀적이지만, (즉 연결 리스트)

배열은 평면적이다

 

스칼라의 리스트 타입은 공변적 (covariant)

List[String]은 List[Object]의 서브타입

List[Nothing]은 List[T]의 서브타입

 

- 리스트 생성

Nil :: (cons)

List(1, 2, 3) 은 1 :: (2 :: (3 :: Nil)) 이라는 리스트 생성

val nums = 1 :: 2 :: 3 :: 4 :: Nil

 

- 리스트의 연산

head는 어떤 리스트의 첫 번째 원소를 반환

tail는 어떤 리스트의 첫 번째 원소를 제외한 나머지 원소로 이뤄진 리스트

isEmpty는 리스트가 비어 있다가 true 반환

 

::: 두인자는 리스트여서 xs ::: ys 는 xs의 모든 원소 뒤에 ys의 모든 원소가 오는 새로운 리스트

 

 

종류메소드

리스트 길이 x.length
리스트 양끝에 접근 init, last
리스트 뒤집기 reverse
접두사, 접미사 drop, take, splitAt
리스트 선택 apply, indices
리스트 펼치기 flatten
리스트 순서쌓 묶기 zip, unzip
리스트 출력 toString, mkString
리스트 변환 iterator, toArray, copyToArray
   
리스트 매핑 map, flatmap, foreach
리스트 filter filter, partition, find, takeWhile, dropWile, span
리스트 전체 술어 forall, exists
리스트 폴드 /:, :\
리스트 정렬 sortWith

 

종류e메소드

리스트 만들기 List.apply
범위 리스트 만들기 List.range
균일한 리스트 List.fill
도표화 List.tabulate
여러 리스트 연결 List.concat
   
   
   
   

 

 

+ Recent posts