【问题标题】:SML - How to write a Function that converts a dataType to String?SML - 如何编写将数据类型转换为字符串的函数?
【发布时间】:2014-05-13 16:17:41
【问题描述】:

我目前正在做一个讲座的作业,我必须为讲座中定义的语言编写口译员。我的部分作业是编写一个函数,该函数将从我的数据类型中获取表达式并将其转换为字符串。

到目前为止,这是我的数据类型:

datatype basicType = voidType | intType | boolType; 
datatype etype = basicType
               | tupelType of (etype * etype)
               | functionType of etype -> basicType;

请注意,我什至不确定此数据类型是否正确。 我可以使用 SML 函数 String.concatWith 和 Int.toString。

因为这是我应该做的作业,所以我只喜欢开始和提示和技巧。请没有完整的解决方案。

感谢你们的任何意见,因为我即将在这次讲座中失去理智。

【问题讨论】:

    标签: string types sml typeconverter custom-data-type


    【解决方案1】:

    您需要实现一个函数,该函数可以通过递归到每个值来打印etype 的所有变体。您还需要一个辅助函数来打印 basicType 值,它不需要是递归的,而是充当递归中的基本情况。

    对于各自数据类型的每个变体,它们都需要一个函数体。处理functionType 的主体也需要应用该函数。

    您还应该考虑在每个函数体中添加一些额外的字符串输出,以使读者能够区分不同的类型。

    例如,tupelType 可以这样打印:(a, b) 其中ab 是对每个元组元素的递归调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      相关资源
      最近更新 更多