gpt4 book ai didi

ocaml - 在 OCaml 中将构造函数名称转换为字符串

转载 作者:行者123 更新时间:2023-12-05 00:24:34 24 4
gpt4 key购买 nike

我的代码中有以下类型定义:

type tag =
| Head
| Title
| Body
| H1
| P;;

type domtree =
| Empty
| Node of tag * string * domtree list;;

我需要打印标签和字符串。但是我找不到任何方法将标记(第一个类型定义中的构造函数名称)转换为字符串并将它们与 domtree 的字符串部分连接起来。有什么具体的方法可以做到这一点吗? OCaml 是否提供将非内置类型转换为字符串的方法?我在这里发现了一个类似的问题,但我不太明白。

最佳答案

OCaml 中没有内置这样的工具,您需要自己编写转换函数 tag_to_string : tag -> string .

很容易自动生成这个字符串的主体,例如,使用这个 sed单线:

sed -e 's/\| \(.*\)/| \1 -> "\1"/'

并将您的标签定义粘贴到其标准输入中。它产生
| Head -> "Head"
| Title -> "Title"
| Body -> "Body"
| H1 -> "H1"
| P;; -> "P;;"

你只需要清洁 ;; .

有很多其他解决方案来定义这个样板代码,我也喜欢为此使用 Emacs 宏。

关于ocaml - 在 OCaml 中将构造函数名称转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26004876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com