2009-11-26 49 views
8

現在FSharp v1已經進入Beta版了,現在是時候詢問vNext了。F#語言規範中的哪個保留關鍵字應該在vNext中實現?

FSharp language spec定義了以下保留關鍵字:

atomic break checked component const constraint constructor  
continue eager fixed fori functor include  
method mixin object parallel params process protected pure  
sealed tailcall trait virtual volatile 
你想它的這些

看到實現的,爲什麼?

每個答案一個關鍵字請。

+1

正當我學習一種語言時,另一種語言也隨之而來!我跳到Z# – 2009-11-26 20:16:38

+0

@Aiden:哈哈,我實際上搜索了「Z#」... – 2009-11-26 20:17:25

+1

應該是一個社區維基 – Brian 2009-11-26 20:30:20

回答

2

我以某種方式無法關注您的鏈接,但如果atomic適用於內置軟件事務內存,這是我的最愛。

+0

是的 - 任何可以讓人類更安全的併發代碼更容易實現。 – 2009-11-26 20:52:13

4

我的投票是tailcall。

如果我正確理解了這個意圖,這將是一個關鍵字,用來標記遞歸函數,作者可能會想要遞歸遞歸。如果出於任何原因編譯器無法遵守,診斷消息可能會有很大的幫助。

目前的情況是,如果你不來構建你的遞歸函數正常,你將這個通知第一次是StackOverflow的異常(無鍋意)

+0

我的印象是F#編譯器確實發佈了尾部IL指令,並且能夠發現尾部調用遞歸。 – 2009-11-26 20:53:30

+3

它的確如果你寫了你的功能。但是如果你在它裏面做了一些事情,所以它不可能是尾遞歸的 - 直到你看到異常 – mfeingold 2009-11-26 21:09:35

+0

不需要關鍵字時,你不會知道它,編譯器會在看到一個沒有tail調用的rec函數時警告我(可能失敗) 。 – 2011-03-02 19:56:18

1

好問題,但很難回答的問題。你無法準確猜測每個保留關鍵字的用途,對吧?

從我的角度來看,我可以看到fixed(固定大小緩衝區)的一些有用用例。

0

如果這意味着默認情況下懶惰評估(如在Haskell中,但與當前F#不同),我會爲eager投票。

7

特質,假設特質就像斯卡拉特質。

+0

我已經upvoted這個,並開始這個線程:http://cs.hubfs.net/forums/thread/12413.aspx hubfs與我的推理和一些問題。 – 2009-11-27 13:06:14