簡體   English   中英

F#語句的語義

[英]Semantics of F# statement

有人可以向我描述這個F#表達式嗎?

val augment: GameGrid -> points -> unit

val關鍵字是什么意思?

通常type -> type指示返回指定類型的函數是否正確? 那么type- type -> type -> type表示返回一個返回指定類型的函數的函數?

(“ val”位不是表達;我認為它可以出現在三個不同的上下文中:

  • FSI(F#交互式REPL)的輸出,描述了綁定的推斷類型
  • 在簽名(.fsi)文件中,描述了讓約束模塊值的類型
  • 用結構/類定義(“顯式”語法)定義實例變量

而且這些都不是技術上的表達上下文。)

至於類型,確實

A1 -> A2 -> R

表示接受A1的函數,並返回接受A2並返回R的函數。這些參數是經過咖喱處理的,它可能會很好地讀取例如

F#函數類型:元組和Curying的樂趣

其中更詳細地描述了currying和部分應用程序。

您如何獲得此輸出的? 在FSI中?

Val僅代表一個值的定義。

例如,如果您在C#中編寫了以下內容

private void Foo(int i);

你可以用F#來寫

val Foo : int -> unit

關於type-> type- type -> type -> type :這是一個帶有兩個參數(類型)的函數,返回“ type”

例如

let plus a b = a + b

擁有簽名int -> int -> int

您關於返回一個函數的函數的想法實際上是正確的。 在許多稱為currying的功能語言中,這是一種非常有趣的技術

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM