[英]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.