Skip to content
Snippets Groups Projects
TieBreak.go 1.04 KiB
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))