2009-05-13 7 views
1

누군가이 F # 표현을 나에게 설명 할 수 있습니까?F # 구문의 의미론

val augment: GameGrid -> points -> unit 

val 키워드의 의미는 무엇입니까?

보통 type -> type이 지정된 유형을 반환하는 함수를 나타내는 것은 사실입니까? 그러면 type -> type -> type은 지정된 유형을 반환하는 함수를 반환하는 함수를 나타 냅니까?

답변

4

합니다 ('브로'비트 표현이 아니다 즉석 I가 세 가지 상황에서 나타날 수 있다고 생각 :

  • 바인딩 유추 유형을 설명 FSI (F # 대화식 REPL)의 출력, 구조체/클래스 정의 ('명시'구문)에 렛 바인딩 모듈 값
  • 의 유형을 기술하는 서명 (.fsi) 파일

가변 인스턴스 없음을 정의 영형 F들은 실제로 종류로서는

). 기술적 발현 상황이다

A1 -> A2 -> R 

A1을 취하는 함수를 의미하며, 인수 카레된다 R.를 A2를 받아 반환하는 함수를 리턴 , 그리고 그것은 잘 읽을 수 있습니다. 무두질 더 상세히 설명 부분 적용

F# function types: fun with tuples and currying

.

+0

이것은 FSI 파일에서 가져 왔습니다. –

3

어떻게 출력을 얻었습니까? FSI 에서요?

Val은 값의 정의를 나타냅니다.

예. 당신은 당신이 type -> type -> type에 관한

val Foo : int -> unit 

F #으로이를 작성합니다 C#

private void Foo(int i); 

을에서 다음 썼다 경우 :이`type'

일예로 돌아 오는 두 개의 매개 변수 (유형)를 가진 기능입니다

은 서명이 int -> int -> int입니다.

실제로 함수를 반환하는 아이디어가 맞습니다. 이것은 많은 함수 언어에서 매우 흥미로운 기술입니다. currying

+0

예, FSI 파일에서 왔습니다. –