나는 기능이 시리즈, isMember
, addElem
및 countries
있습니다F #을
let rec isMember x = function
| y::ys -> y=x || (isMember x ys)
| [] -> false
let addElem x ys = if isMember x ys then ys else x::ys
let rec countries = function
| [] -> []
| (c1,c2)::m -> addElem c1 (addElem c2 (countries m))
내가 고차 함수를 사용하여 국가 재 작성 할를,하지만 난 완전히 확실하지 않다 방법 :
목록의 각 요소에 함수를 적용 할 예정이므로 제 생각에는 List.map
과 관련이 있습니다.
let countriesHigherOrder m =
List.map (fun x -> addElem x m)
그것이 countriesHigherOrder m = List.fold하자 '대답 가능할 것이다 (재미 ACC (C1을, C2) -> addElem (C1, C2)는 ACC)] m'? – Khaine775
예 가능합니다. 나는 addElem을 addPair로 바꿨다. addPair는 대소 문자 구분을 피하기 위해 addElem을 호출합니다. –