2013-01-22 43 views
3

UPDATE詳細正確的實現文件在冗長的語法?

一般問題是:如何正確使用F#的詳細語法?詳細的語法是這是接近OCaml的語法,語法即與許多逗號等的語法

OLD TEXT

我想打開光語法關閉在F#有詳細的語法更靠近OCaml

我寫了下面的代碼

#light "off" 

let k=3.14;; 

,並來到了咱們的錯誤:

Unexpected keyword 'let' or 'use' in implementation file 

什麼是不輕語法正確執行的文件結構?

+0

你實際上並不需要'#light'了 - 但它仍然應該罰款 –

+0

@約翰我想你誤解了我:我想有燈光關閉有語法接近OCaml的 –

+1

我看「光」的東西。在'fsi'中鍵入你的例子對我來說工作得很好 - 也許你在某處有一些有趣的unicode字符? –

回答

1

我沒有看到任何錯誤,但...爲什麼這兩個;?你正在編譯它還是在fsi中運行?

2

問題是你已經寫了一個.fsi文件 - 這是一個FSharp接口定義文件;它與fsi.exe(FSharp Interactive)無關。

消息「Unexpected關鍵字'讓'或'在實現文件中使用'是預期的告訴 - 接口定義。只需使用.fs擴展。

如果您希望重用ML代碼,請考慮將文件擴展名更改爲.ml,並在開始時添加#nowarn "62"指令以忽略舊警告。

#nowarn "62" 
#light "off" 

let div2 = 2;; 

let f x = 
    let r = x % div2 in 
     if r = 1 then 
     begin "Odd" end 
     else 
     begin "Even" end 
+1

我想使用F#但使用詳細的語法。怎麼做? –

+0

@SuzanCioc帶'#light「off」'的'.fs'文件是實現它的方法。 – Asti

相關問題