NUnit
source: http://ljsking.org/?cat=9
2009년 4월 10일 금요일
F# tutorial
let은 C, Java등에서의 변수 지정 구문 비슷해 보이지만 그 동작이 다릅니다. F#에서 let은 앞의 언어들에서의 상수 지정과 유사합니다. 즉 한번 값이 지정되면 그 값을 바꿀 수 없습니다.
let은 데이터 뿐 아니라 함수를 지정하는 역할로도 쓰입니다.
함수의 적용 범위를 부분으로 한정 지읍니다.
[#light]
OCaml과 차이를 보이는 부분 입니다. #light은 OCaml의 syntax 상에서의 구속을 완화 시켜 줍니다.
[let, let rec]
[int -> int]
[pattern matching]
> let rec fact n =
- match n with
- | 0 -> 1
- | _ -> n * fact (n-1);;
- 함수형 언어에서는 일반적으로 코드를 쓸 수 있는 어디에서건 함수를 정의할 수 있습니다.
F#을 interactive하게 사용해 보자구요.
출처: http://weblogs.asp.net/gbarnett/archive/2007/09/19/using-f-interactive.aspx
source: http://diditwith.net/2008/01/15/WhyILoveFTheInteractiveEnvironment.aspx
F#을 interactive environment로 이용하는 방법을 알아 봅니다.
source: http://diditwith.net/2008/01/15/WhyILoveFTheInteractiveEnvironment.aspx
F#을 interactive environment로 이용하는 방법을 알아 봅니다.
F#에서 erlang 스타일의 message passing concurrency 사용
출처: http://strangelights.com/blog/archive/2007/10/24/1601.aspx
message passing concurrency 방법은 erlang이 원조 입니다. 그런데 왜 erlang을 사용하지 않고 f#으로 message passing concurrency를 사용하려 할까요. 아래와 같은 몇 가지 이유들이 있습니다.
- 고유의 runtime 상에 erlang은 구현되어 있습니다. 그래서 .NET과 비교하여 라이브러리와 지원 툴이 부족합니다.
- I/O가 느립니다.
- regular expression을 언어 차원에서 지원하지 않습니다. 따라서 regular expression을 자연스럽게 (natively) 사용할 수 없습니다.
따라서 erlang 말고 .NET의 이점을 이용할 수 있는 F#에서 message passing concurrency를 사용하는 것이 위의 반대 이유로 유리함을 제공합니다.
F#에서 agent를 만들기 위해 MailboxProcessor.Start 함수를 이용합니다. 이 함수는 또 다른 함수를 매개 변수로 받습니다.
message passing concurrency 방법은 erlang이 원조 입니다. 그런데 왜 erlang을 사용하지 않고 f#으로 message passing concurrency를 사용하려 할까요. 아래와 같은 몇 가지 이유들이 있습니다.
- 고유의 runtime 상에 erlang은 구현되어 있습니다. 그래서 .NET과 비교하여 라이브러리와 지원 툴이 부족합니다.
- I/O가 느립니다.
- regular expression을 언어 차원에서 지원하지 않습니다. 따라서 regular expression을 자연스럽게 (natively) 사용할 수 없습니다.
따라서 erlang 말고 .NET의 이점을 이용할 수 있는 F#에서 message passing concurrency를 사용하는 것이 위의 반대 이유로 유리함을 제공합니다.
F#에서 agent를 만들기 위해 MailboxProcessor.Start 함수를 이용합니다. 이 함수는 또 다른 함수를 매개 변수로 받습니다.
피드 구독하기:
글 (Atom)