我在命令行下尝试了F#,它不能识别函数定义
> let ref f n=
-  if(n<=2)then 1
-  else f(n-1)+f(n-2)
- ;;
val ref : f:(int -> int) -> n:int -> int
> printf "%i" (f 10)
- ;;
  printf "%i" (f 10)
  -------------^
stdin(9,14): error FS0039: The value or constructor 'f' is not defined问:我的程序中有什么错误吗?我将f的定义和用法复制并粘贴到visual studio的F#项目中,它运行正常。
但是为什么命令行会失败呢?
发布于 2015-05-22 09:22:12
您定义了一个名为ref的函数,但您正在尝试调用一个名为f的函数。没有定义这样的函数(尽管您的ref函数接受一个名为f的参数),因此您不能调用它。
您可能打算使用rec关键字(带有'c')定义一个递归函数f,而不是定义一个名为ref的函数。
我将f的定义和用法复制并粘贴到visual studio的F#项目中,它运行正常。
只有当您的VS项目已经包含名为f的函数的定义时,这才是可能的。
https://stackoverflow.com/questions/30386870
复制相似问题