如何在交互式窗口中使用f#功能?

时间:2011-09-20 03:12:26

标签: f# f#-interactive

如何在交互式窗口中执行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

我做错了什么?

2 个答案:

答案 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"
>