Newer
Older
package comsoc
import("fmt")
func TieBreakFactory(orderedAlts []Alternative) (func ([]Alternative) (Alternative, error)){
return func (bestAlts []Alternative) (Alternative, error) {
bestAlt := bestAlts[0]
for _,alt:= range bestAlts[1:]{
if isPref(alt,bestAlt,orderedAlts){
bestAlt = alt
}
}
return bestAlt, nil
}
}
func Test_tieBreakFactory(){
orderedAlts := []Alternative{8,9,6,1,3,2}
fmt.Println("Ordre strict :", orderedAlts)
lambda:=TieBreakFactory(orderedAlts)
bestAlts := []Alternative{3,6}
fmt.Println("Premières alternatives à départager :", bestAlts)
bestAlt,_ := lambda(bestAlts)
fmt.Println("Première alternative :", bestAlt)
}
// func SWFFactory(func swf(p Profile) (Count, error), func ([]Alternative) (Alternative, error)) (func(Profile) ([]Alternative, error)){
// return func ([]Alternative) (Alternative, error) {
// return orderedAlts[0],nil
// }
// }
//func SCFFactory(func scf(p Profile) ([]Alternative, error), func ([]Alternative) (Alternative, error)) (func(Profile) (Alternative, error))