SML Standard ML 빌트인 자료형 - ChoDragon9/posts GitHub Wiki
리스트는 메모리상에서 연속적으로 값이 할당된 자료형이다.
리스트를 선언할 때는 자바스크립트와 유사하게 선언 가능하다.
val numbers = [1, 3, 3, 7, 229, 230, 248] (* : int list *)
val names = [ "Fred", "Jane", "Alice" ] (* : string list *)
val groups = [ [ "Alice", "Bob" ],
[ "Huey", "Dewey", "Louie" ],
[ "Bonnie", "Clyde" ] ] (* : string list list *)
내장 함수인 List.length
를 통해 리스트의 길이를 구할 수 있다.
val numbers = [1, 2, 3]
val count = List.length numbers
[autoloading]
[library $SMLNJ-BASIS/basis.cm is stable]
[library $SMLNJ-BASIS/(basis.cm):basis-common.cm is stable]
[autoloading done]
val numbers = [1,2,3] : int list
val count = 3 : int
- 앞으로 추가할 때는
::
연산자를 사용한다. - 리스트를 병합하고 싶을 때는
@
연산자를 사용한다.
val numbers = [1, 2, 3]
val front_numbers = 0 :: numbers
val back_numbers = numbers @ [4]
val numbers = [1,2,3] : int list
val front_numbers = [0,1,2,3] : int list
val back_numbers = [1,2,3,4] : int list
자바스크립트의 객체리터럴을 사용하는 것과 유사하다.
- 튜플을 정의할 때는
{ <name>=<value> }
형태로 정의한 다. - 튜플의 값을 접근할 때는
#<name> <tuple>
형태로 사용한다.
val rgb = { r=0.23, g=0.56, b=0.91 }
val r = #r rgb
val rgb = {b=0.91,g=0.56,r=0.23} : {b:real, g:real, r:real}
val r = 0.23 : real