【问题标题】:unable to run Mozart code无法运行莫扎特代码
【发布时间】:2014-03-30 18:59:20
【问题描述】:
local MainSum in
  fun {MainSum N}
    local Sum in 
      fun {Sum N Acc} 
        if N==0 then Acc 
          else Acc+{Sum N-1 N*N} 
        end 
      end 
     {Sum 5 0}
     end
  end
end

当我尝试此代码时,它显示以下错误

%************************** syntax error ************************
%**
%** nesting marker expected as designator of nested function
%**
%** in file "exercise.oz", line  2, column 7
%** ------------------ rejected (1 error)

【问题讨论】:

  • 你真的可以也应该给我们更多的合作机会;只是说“无法运行此代码” 1. 不是问题 2. 让我们不知道实际发生了什么。我们不知道是否有错误,您的代码是否崩溃,是否您不小心创建了一个每次运行都会吞噬十几个小行星的黑洞。如果您希望我们能够提供帮助,请向我们提供信息。信息越多越好。
  • 请提供更多信息
  • 我真的很抱歉我的错误

标签: mozart


【解决方案1】:

你的代码在我的电脑上工作......但是你没有使用 MainSum 的参数

我相信这就是你想要做的:

local MainSum in
   fun {MainSum N}
      local Sum in 
         fun {Sum N Acc} 
            if N==0 then Acc 
            else Acc+{Sum N-1 N*N} 
            end 
         end 
         {Sum N 0}
      end
   end

   {Browse {MainSum 5}}
end

可以使用更简洁的表示法和终端递归来编写!

local
   fun{MainSum N}
      fun{Sum N Acc}
         if N==0 then Acc
         else {Sum N-1 N*N+Acc}
         end
      end
   in
      {Sum N 0}
   end
in
   {Browse {MainSum 5}}
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 2011-06-18
    • 2010-09-22
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    相关资源
    最近更新 更多