首页 > 解决方案 > 简单 F# 代码中出现意外的关键字错误

问题描述

我正在创建一个小函数,它将像这样随机生成一个字母数字字符串

open System

let randomStr (len : int) : string =
    let rand = new Random() 
    let ch = Array.concat [| [|'a' .. 'z'|];[|'A' .. 'Z'|];[|'0' .. '9'|] |]
    let sz = Array.length ch in
    System.String(Array.init len (fun _ -> ch.[rand.Next sz]))

let e = randomStr 5
printf "%s" e

我似乎不断收到以下错误,我不知道为什么

error FS0010: Unexpected keyword 'let' or 'use' in expression. Expected 'in' or other token.

标签: f#

解决方案


我怀疑通过#light "off". 我在这里在Visual Studio 之外重现了相同的错误。尝试删除#light指令。VS2017 中可能还有一些设置会禁用轻量级语法,但我手头没有可以尝试的副本。轻量级语法现在被认为是 F# 中的规范,因此很少需要旧的冗长样式。


推荐阅读