如何在交互式窗口中执行F#功能?
如果我创建.fsx文件并输入以下代码:
open System
let parseTitle (line : string) =
let startIndex = line.LastIndexOf('(')+1
let endIndex = line.LastIndexOf(')')
line.Substring(startIndex,endIndex-startIndex-1)
let testTitle = "The Possessed (The Devils) (Fyodor Dostoyevsky)"
parseTitle testTitle
然后全部选择并按Alt + Enter。什么都没发生。当我将光标设置到最后一行并按Alt + Enter时出现以下错误:
error FS0039: The value or constructor 'parseTitle' is not defined
我做错了什么?
答案 0 :(得分:1)
要使用某些给定文件中的代码,您只需突出显示它,右键单击,然后选择“发送到交互式”。这将把整个选择发送到交互式窗口,而不是只有一行。 Enigmativity的答案不正确,因为您不需要修改文件以便将代码段发送到交互式窗口。他所指的是:如果你在交互式窗口中手动输入一些代码,你需要用双分号结束你的语句;;。
答案 1 :(得分:0)
您需要在每行(或块)的末尾键入;;
来执行代码。
open System;;
let parseTitle (line : string) =
let startIndex = line.LastIndexOf('(')+1
let endIndex = line.LastIndexOf(')')
line.Substring(startIndex,endIndex-startIndex-1);;
let testTitle = "The Possessed (The Devils) (Fyodor Dostoyevsky)";;
parseTitle testTitle;;
然后我得到:
>
val parseTitle : string -> string
>
val testTitle : string = "The Possessed (The Devils) (Fyodor Dostoyevsky)"
>
val it : string = "Fyodor Dostoyevsk"
>