package extras

import fp.*

	// alias
def bEq = Functor.bEq
def bNe = Functor.bNe

def common = { pred, list1, list2 ->
    return list1.any {item1 -> return list2.any {item2 -> return pred(item1, item2)} }
}

def ex1 = [11, 12, 13, 14]
def ex2 = [15, 16]
def ex3 = [14, 15]
       
println "common: ${common(bEq, ex1, ex2)}"
println "common: ${common(bEq, ex1, ex3)}"

def clo = { pred, list1, list2 ->
    return list1.filter {item1 -> return list2.any {item2 -> return pred(item1, item2)} }
}

println "clo: ${clo(bEq, ex1, ex2)}"
println "clo: ${clo(bEq, ex1, ex3)}"
