⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.91
Server IP:
217.21.90.168
Server:
Linux in-mum-web840.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64
Server Software:
LiteSpeed
PHP Version:
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
opt
/
golang
/
1.22.0
/
test
/
typeparam
/
View File Name :
issue51303.go
// run // Copyright 2022 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "fmt" ) func main() { x := [][]int{{1}} y := [][]int{{2, 3}} IntersectSS(x, y) } type list[E any] interface { ~[]E Equal(x, y E) bool } // ss is a set of sets type ss[E comparable, T []E] []T func (ss[E, T]) Equal(a, b T) bool { return SetEq(a, b) } func IntersectSS[E comparable](x, y [][]E) [][]E { return IntersectT[[]E, ss[E, []E]](ss[E, []E](x), ss[E, []E](y)) } func IntersectT[E any, L list[E]](x, y L) L { var z L outer: for _, xe := range x { fmt.Println("xe", xe) for _, ye := range y { fmt.Println("ye", ye) fmt.Println("x", x) if x.Equal(xe, ye) { fmt.Println("appending") z = append(z, xe) continue outer } } } return z } func SetEq[S []E, E comparable](x, y S) bool { fmt.Println("SetEq", x, y) outer: for _, xe := range x { for _, ye := range y { if xe == ye { continue outer } } return false // xs wasn't found in y } return true }