Loops 循环/递归直到输入有效
我试图编写一些代码,在输入有效的文件路径或“退出”之前一直询问用户 我现在所拥有的:Loops 循环/递归直到输入有效,loops,recursion,f#,Loops,Recursion,F#,我试图编写一些代码,在输入有效的文件路径或“退出”之前一直询问用户 我现在所拥有的: let (|ValidPath|_|) str = if File.Exists str then Some ValidPath else None type Return = |Path of string |Exit let rec ask = printfn "%s" "Please enter a valid path or \"exit\"" let
let (|ValidPath|_|) str =
if File.Exists str then Some ValidPath
else None
type Return =
|Path of string
|Exit
let rec ask =
printfn "%s" "Please enter a valid path or \"exit\""
let input = Console.ReadLine()
match input with
| "exit" -> Exit
| ValidPath -> Path input
| _ -> ask
ask
函数有一个值“aks”将作为其自身定义的一部分进行计算
错误
我能做什么?问题是
ask
不是一个函数,而是一个递归值。您需要获取一个参数才能使其成为函数:
let rec ask () =
printfn "%s" "Please enter a valid path or \"exit\""
let input = Console.ReadLine()
match input with
| "exit" -> Exit
| ValidPath -> Path input
| _ -> ask ()