mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-03-31 16:09:02 +02:00
Merge pull request #8808 from ProofOfKeags/fn/predicate-combinators
fn: add predicate combinators for && and ||
This commit is contained in:
commit
0fadf97e72
20
fn/predicate.go
Normal file
20
fn/predicate.go
Normal file
@ -0,0 +1,20 @@
|
||||
package fn
|
||||
|
||||
// Pred[A] is a type alias for a predicate operating over type A.
|
||||
type Pred[A any] func(A) bool
|
||||
|
||||
// PredAnd is a lifted version of the && operation that operates over functions
|
||||
// producing a boolean value from some type A.
|
||||
func PredAnd[A any](p0 Pred[A], p1 Pred[A]) Pred[A] {
|
||||
return func(a A) bool {
|
||||
return p0(a) && p1(a)
|
||||
}
|
||||
}
|
||||
|
||||
// PredOr is a lifted version of the || operation that operates over functions
|
||||
// producing a boolean value from some type A.
|
||||
func PredOr[A any](p0 Pred[A], p1 Pred[A]) Pred[A] {
|
||||
return func(a A) bool {
|
||||
return p0(a) || p1(a)
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user