首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >F#命令行(fsi)不能识别函数,编译错误,为什么?

F#命令行(fsi)不能识别函数,编译错误,为什么?
EN

Stack Overflow用户
提问于 2015-05-22 09:14:49
回答 1查看 163关注 0票数 0

我在命令行下尝试了F#,它不能识别函数定义

代码语言:javascript
运行
复制
> 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#项目中,它运行正常。

但是为什么命令行会失败呢?

EN

回答 1

Stack Overflow用户

发布于 2015-05-22 09:22:12

您定义了一个名为ref的函数,但您正在尝试调用一个名为f的函数。没有定义这样的函数(尽管您的ref函数接受一个名为f的参数),因此您不能调用它。

您可能打算使用rec关键字(带有'c')定义一个递归函数f,而不是定义一个名为ref的函数。

我将f的定义和用法复制并粘贴到visual studio的F#项目中,它运行正常。

只有当您的VS项目已经包含名为f的函数的定义时,这才是可能的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30386870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档