3

更新

一般的问题是:如何正确使用 F# 的详细语法?详细语法是接近 OCaml 语法的语法,即带有许多逗号等的语法。

旧文本

我想关闭轻量级语法F#以获得更接近OCaml.

我写了以下代码

#light "off"

let k=3.14;;

并在 let 上出错:

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

什么是没有轻量语法的正确实现文件结构?

4

2 回答 2

2

问题是你已经把它写在一个.fsi文件中——这是一个 FSharp 接口定义文件;fsi.exe它与(FSharp Interactive)无关。

消息“Unexpected keyword 'let' or 'use' in implementation file”是一个告诉 - 接口定义是预期的。只需使用.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
于 2013-01-23T18:37:31.197 回答
1

我看不出有什么问题,但是...为什么是两个;?您是在编译它还是在 fsi 中运行?

于 2013-01-22T14:58:34.850 回答