此表达式的类型为“a 列表”,但表达式的类型应为“b->”c

问题描述 投票:0回答:1

正如标题所说,我不明白为什么类型不正确。有什么想法吗?

let separe l x = let rec aux l1 l2 l x = match l with
    |[]->l1 l2
    |t::q when t<=x->aux (t::l1) l2 q x
    |t::q ->aux l1 (t::l2) q x 
  in aux [] [] l x

该表达式的类型为“a list”,但第 3 行的表达式应为“b->”c 类型。

我似乎无法弄清楚出了什么问题

types ocaml
1个回答
0
投票

您在第 2 行写了

l1 l2
,因此 OCaml 认为
l1
是一个函数,然后当您尝试在第 3 行传递
l1
的列表时会抱怨。

© www.soinside.com 2019 - 2025. All rights reserved.