Как я могу использовать функцию f # в интерактивном окне? - PullRequest
0 голосов
/ 20 сентября 2011

Как выполнить функцию 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 ]

1 голос
/ 20 сентября 2011

Чтобы использовать код из какого-либо файла, вам нужно только выделить его, щелкнуть правой кнопкой мыши и выбрать «Отправить в интерактив». Это отправит весь выбор в интерактивное окно, а не одну строку. Enigmativity дает неверный ответ, так как вам не нужно изменять файл, чтобы отправить фрагмент в интерактивное окно. Он имел в виду следующее: если вы вводите какой-то код вручную в интерактивном окне, вам нужно заканчивать свои операторы двойной точкой с запятой ;;.

0 голосов
/ 20 сентября 2011

Вам нужно набрать ;; в конце каждой строки (или блока), чтобы выполнить код.

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"
> 
...