【发布时间】:2020-11-08 13:59:56
【问题描述】:
我必须编写一个以字典和字符为参数的函数。字典是字符串到字符串的,你应该把它看作一个函数。例如 f("a")="b" in ("a", "b")。该函数返回一个定义了 f^number(character) 的最大数字,如果 f(character) 在无穷大处循环,则返回一个异常。
所以如果我有例如这本字典 [("a", "b");("b", "c");("d", "e");("e", "f" );("f", "e")] 我的函数用这本字典上诉,字符“a”将给出结果 2(a 进入 b,b 进入 c 并停止);对于“x”,它将给出 0,因为没有这样的密钥;对于“b”,结果将为 1(b 进入 c 并停止);对于“d”,它将引发异常(d 进入 e,e 进入 f,f 进入 e 并在 e 中返回,因此无限循环); 'e' 或 'f' 的相同例外
模块 MS = Map.Make(String);; 让 d = MS.add "a" "b" (MS.add "b" "c" (MS.add "d" "e" (MS.add "e" "f" (MS.add "f" " e" MS.empty))));; 让 f d c =
我刚刚创建了字典,因为我不知道如何实现这个问题,但我认为我需要 MS.Fold 函数来浏览字典。
【问题讨论】:
标签: ocaml