printList 함수를 OCaml 의 함수형 언어의 특징을 살려 (꼬리 재귀호출과 match 표현을 이용하여) 구현하였다.
[파일명: testSort.ml]------------------------------------------------
open Printf ;;
let printList data =
let rec loop l =
match l with
| x::[] -> printf "%s" x
| x::xs -> begin printf "%s, " x; loop xs end
| [] -> printf ""
in
printf "[" ;
loop data ;
printf "]" ;;
(* Begin here *)
let cmdArgs = Sys.argv in
let args2 = Array.sub cmdArgs 1 ((Array.length cmdArgs) - 1) in
printf "Original data: " ;
printList (Array.to_list args2) ;
print_newline() ;
Array.sort String.compare args2 ;
printf " Sorted data: " ;
let b = Array.to_list args2 in
printList b ;
print_newline() ;
------------------------------------------------
실행> ocaml testSort.ml a123 help me 한글 각자 halo kk c 564
Original data: [a123, help, me, 한글, 각자, halo, kk, c, 564]
Sorted data: [564, a123, c, halo, help, kk, me, 각자, 한글]
'프로그래밍 > OCaml' 카테고리의 다른 글
Pollard's rho method 소개: 정수의 인수분해(factorizing integers) with OCaml (0) | 2013.02.02 |
---|---|
스트링 리스트에서 스트링 찾기(find) with OCaml (0) | 2013.02.02 |
손으로 계산하는 긴자리 곱셈표 만들기 with OCaml (0) | 2013.02.02 |
문자열 거꾸로 하기 with OCaml (0) | 2013.02.02 |
손으로 만드는 나눗셈 계산표 with OCaml (0) | 2013.02.01 |