簡體   English   中英

使用List和couples的Ocaml函數

[英]Ocaml functions using List and couples

我有一個任務要完成,但是我遇到了麻煩。 這是在ocaml中,列表是主要焦點。

第一個函數接受一對夫婦的列表[(a1,b1);(a2,b2)...]並驗證每個“ a”是否不同。

我嘗試分兩部分進行此操作:

let rec isNotIn x = function
   |[]-> true
   |(a,_)::l -> a <> x && isNotIn a l;;
let isFunction = function
   |[] -> false
   |(a,_)::l -> isNotIn a l;;

我找不到一種使它起作用的方法,isFunction僅檢查以下對夫婦的第一個元素是否等於其自己的元素。 但是我需要它來檢查列表中的每個第一個元素,而不僅僅是下一個。

好吧,除了忘記了遞歸調用,您所做的幾乎是完美的:

let rec isFunction = function
   | []  -> true (* if the function is empty it's ok, no ? *)
   | (a, _) :: l -> isNotIn a l && isFunction l;;

而且,實際上,您的第一個函數不僅接收一對夫婦,而且接收一個元素x並驗證x不是列表中任何一對的第一個元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM