【发布时间】:2016-12-07 18:00:12
【问题描述】:
我有一个递归函数,我想要在 Mémoïsant 中重写
我的递归函数:
let rec sum_cube l =
match l with
| [] -> 0
| x :: s -> (x * x * x) + sum_cube s
我试过了:
let memo = Hashtbl.create 17
let rec sum_cub_memo l =
try
Hashtbl.find memo l
with Not_found ->
let fn = function
| [] -> 0
| x::s -> (x * x * x ) sum_cub_memo s
in
Hashtbl.add memo l fn
fn ;;
我有一个错误:
此表达式的类型为 int list -> int 但表达式应为 int list 类型!!
【问题讨论】:
-
哪个表达式?
-
啊。仔细看看
fn。它是什么?你是怎么用的? -
@melpomene Hashtbl.add memo l fn
标签: list ocaml memoization