-
Notifications
You must be signed in to change notification settings - Fork 0
Standard ML
Yongku cho edited this page Dec 29, 2019
·
24 revisions
Standard ML(SML; "Standard Meta Language")
Standard ML는 모듈식, 함수형 프로그래밍 언어이고, 컴파일 타임에 타입 체크와 타입 유추를 한다.
모듈식 프로그래밍은 프로그램 기능을 독립적이고 상호 교환 가능한 모듈로 분리하는 것을 강조하는 소프트웨어 설계 기법이다. 각 모듈에는 원하는 기능의 한 측면만 실행하는 데 필요한 모든 것이 포함된다.
- Standard ML of New Jersey에 접속한다.
- Downloads 링크를 클릭한다.
- Software Links 링크를 클릭한다.
- PC의 OS에 맞게 패키지를 설치한다.
패키지가 설치되면 /usr/local/smlnj
로 설치된다. 해당 폴더에 있는 bin
폴더를 환경변수에 추가한다.
- 터미널에서 환경변수를 추가한다.
$ vi ~/.bash_profile
- 환경변수 추가 후
sml
명령어로 확인한다.
$ sml
Standard ML of New Jersey (64-bit) v110.96 [built: Fri Dec 13 14:59:34 2019]
-
- Control-D 단축키로 종료한다.
$ sml
Standard ML of New Jersey (64-bit) v110.96 [built: Fri Dec 13 14:59:34 2019]
- ^D
$ sml
코드 작성 후 세미 콜론을 작성하면 실행된다. 아래는 1 + 2;
를 입력한 결과이다.
Standard ML of New Jersey (64-bit) v110.96 [built: Fri Dec 13 14:59:34 2019]
- 1 + 2;
val it = 3 : int
파일은 use "<Path>"
형태로 사용된다. 현재 폴더를 기준으로 파일 경로를 찾는다.
SML의 변수 선언은
val
로 한다.
val x = 1 + 2
$ sml
Standard ML of New Jersey (64-bit) v110.96 [built: Fri Dec 13 14:59:34 2019]
- use "./sum.sml";
[opening ./sum.sml]
val x = 3 : int
val it = () : unit
단일 값을 리스트 첫번째에 추가한다. Lisp에서는 the cons operator로 불린다.
val numbers = [1, 2, 3]
val more_numbers = 4 :: numbers (* [1, 2, 3, 4] *)
두 인자를 병합하여 리스트로 만든다. 인자는 값이나 포인터가 될 수 있다.
Not In List의 약자로 List 자료구조의 빈 상태를 나타낸다.
예외 발생시 처리될 값을 정의한다.