我对 OCaml 还是很陌生,希望在优化代码方面得到一些帮助。
我试图将给定列表的每个元素乘以列表的最后一个元素。
这是我的代码片段:
(* Find the last element of a function *)
let rec lastE = function
| [] -> []
| [x] -> x
| _ :: t -> lastE t;;
(*multiply a list by the last element*)
let rec lmul list =
match list with
[] -> []
| hd::tl -> (hd *. (lastE tl)) :: lmul tl;;
当我运行代码时,我收到此错误消息:
Error: This expression has type float list but
an expression was expected of type 'a list list
我已经研究了一段时间,但是对于这个问题的任何帮助将不胜感激。