【问题标题】:Scan through individual numbers in a list with Oz使用 Oz 扫描列表中的单个数字
【发布时间】:2017-01-31 17:50:08
【问题描述】:

我正在努力学习 Oz,但除了官方文档之外,我几乎没有在线资源,我真的很难找出如何扫描列表以创建有效的分区函数。在这个例子中,我只是试图返回列表的第一个数字。我该怎么做?

declare

fun {Partition ?X}
   case X of nil then nil
   else
      {Show "HELLO!"}
      RETURN FIRST DIGIT OF X HERE?
   end
end

in
{Show {Partition [5 1 7 3 4 6 5]}}

【问题讨论】:

  • “除了官方文档之外,在线资源非常少,我真的很挣扎”您知道鲁汶天主教大学的在线课程,您可以从哪里获得帮助?

标签: oz mozart


【解决方案1】:

您可以使用模式匹配,作为第二个 case 子句:

case X of nil then nil
[] A|B then A    
end

X 在这种情况下等于 [5 1 7 3 4 6 5],唯一匹配的子句是第二种,最简单的方法是将 5 分配给 A 和 [1 7 3 4 6 5] B。这只是开始,现在您可以添加更复杂的子句或使用递归来完成其他更复杂的任务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2017-11-23
    • 1970-01-01
    相关资源
    最近更新 更多