F#函数,其中x可被2或3整除,但不能被

时间:2016-10-08 18:43:01

标签: f#

I have a function that determines whether a value is divisible by 2 or 3, but **NOT** 5:

let ttnf x =  
    if (x % 2 = 0) || (x % 3 = 0) && not(x % 5 = 0) then true 
        else 
            false

我在交互式面板中得到了Visual Studio 2015的奇怪响应。 我在F#交互式面板中执行上面的代码,然后输入say ...

ttnf 15

点击进入,没有...... 点击alt +输入然后它第二次返回它。 任何想法为什么它不会返回真/假进入:

ttnf 15

第一次?

感谢。

1 个答案:

答案 0 :(得分:3)

@ildjarn评论了你的代码中的错误,但是关于F#interactive的行为:当你直接在fsi中输入代码时,你需要用;;终止每个声明来告诉fsi解释它,否则它只会等你继续输入(正如你所经历的那样)。所以:

> let ttnf x =  
    if (x % 2 = 0 || x % 3 = 0) && not(x % 5 = 0) then true 
        else 
            false;;

val ttnf : x:int -> bool

> ttnf 15;;

val it : bool = false

>