簡體   English   中英

F# 中沒有缺點運算符或咖喱缺點 function?

[英]No cons operator or curried cons function in F#?

我們可以在 F# 中寫3 + 4(+) 3 4並得到相同的結果,這適用於大多數運算符。

為什么 cons 運算符::行為不同? 例如,如果我跑

(::) 1 [2;3]

我明白了

error FS0010: Unexpected symbol '::' in expression

而我想得到 [1;2;3]。

在相關的說明中,為什么List.Cons沒有咖喱? 是否沒有內置的缺點 function 類型為'T -> 'T list -> 'T list

實際上 (::) 不是運算符。 這是一個工會案件。 至少 F# 的創建者是這樣定義的:

type List<'T> = 
   | ([])  :                  'T list
   | (::)  : Head: 'T * Tail: 'T list -> 'T list
and 'T list = List<'T>

這是有道理的:一個列表可以是空的,也可以是有頭有尾的。

關於List.Cons我同意,它應該有簽名'T->'T list ->'T list而不是'T*'T List->'T list

暫無
暫無

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

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