-1
我有一個這個練習的問題!從列表[a1,...,ai,ai + 1,....,an]到列表[ai + 1,...,an,a1,... ai]的OCaml
我的想法是創建兩個功能:
- 第一個函數創建列表
[ai + 1, ..., an]
- 第二個功能,作爲輸入的第一個函數的結果並返回結果:
[ai + 1, ..., an, a1, ..., ai]
問題是我剛開始使用Ocaml進行編程,我不太清楚如何使用它。所以我有一些我不知道如何解決的錯誤。 我的代碼是這樣的:
let rec produceprima l i =
let rec produceprima_aux l i acc=
let rec aux l i acc l1 =
match l with
[]-> []
|x::y -> if(acc>i) then aux y i acc+1 [email protected][x]
else aux y i acc+1 l1
in aux l i acc l1
in produceprima_aux l i acc;;
let rec produceseconda l i =
let rec produceseconda_aux l i acc=
let rec aux l i acc l1 =
match l with
[]-> []
|x::y -> if(acc<=i) then aux y i acc+1 [email protected][x]
in aux l i acc l1
in produceseconda_aux l i acc;;
第一功能的錯誤是:
Error: This expression has type 'a -> 'b list
but an expression was expected of type int
第二個功能,我必須嘗試,但肯定是有錯誤!
非常感謝:D我試試!當然,我會看到教程! –