【问题标题】:Dynamically Generating a function with pattern matching in Ocaml在 Ocaml 中动态生成具有模式匹配的函数
【发布时间】:2018-04-03 15:33:40
【问题描述】:

我正在尝试编写一个动态生成另一个函数的函数,该函数具有动态指定的匹配模式,但我对如何开始感到非常迷茫。

基本上,顶级函数接受字典,其中键与值列表匹配,我想返回一个函数,该模式将这些键与值匹配。

例如,我会传入一个像 [( "a", [1;2;3]); ("b", [3])] 这样的字典,我会得到一个看起来像这样的函数

function 
| "a" -> [1;2;3] 
| "b" -> [3]

谁能指点我如何开始这方面的工作?

【问题讨论】:

    标签: functional-programming pattern-matching ocaml


    【解决方案1】:

    听起来你想要的只是List.assoc,但参数颠倒了:

    let f list key =
        List.assoc key list
    
    let g =
        f [( "a", [1;2;3]); ("b", [3])]
    
    let a = g "a" (* returns [1;2;3] *)
    

    顺便说一句,您所说的“字典”更具体地称为关联列表。因此函数的名称:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      相关资源
      最近更新 更多