Sml 函数确定数字是否在斐波那契函数中?

Sml 函数确定数字是否在斐波那契函数中?,sml,Sml,我需要在sml中编写一个函数,它接受一个数字并确定它是否是斐波那契数。 我已经做了斐波那契函数 fun fib 1=0 | fib 2=1 | fib n= fib (n-1)+fib(n-2); 但我想不出第一个?你有什么想法吗?这可能会对你有所帮助 fun isfib 0 = true | isfib x = let fun help (i,j) = if j >= x then x = j else help (j,j+i) in

我需要在sml中编写一个函数,它接受一个数字并确定它是否是斐波那契数。 我已经做了斐波那契函数

fun fib 1=0
  | fib 2=1
  | fib n= fib (n-1)+fib(n-2);
但我想不出第一个?你有什么想法吗?

这可能会对你有所帮助

fun isfib 0 = true
  | isfib x =
    let
      fun help (i,j) = if j >= x then x = j else help (j,j+i)
    in
      help (0,1)
    end

我创建了一个helper函数,该函数向前生成序列,直到看到一个大于或等于我感兴趣的数字。然后我测试斐波那契数是否等于x。

编写一个函数,生成该数的斐波那契序列。如果生成的最后一个数字是数字本身,则它是斐波那契数。把你的密码寄给我们。