Update to Swift 4.2
Standard Operators for the working Swift Librarian.
Operadics introduces the following operators at global scope
•
• <A, B, C>(B -> C, A -> B) -> A -> C
§
§ <A, B>(A -> B, A) -> B
<|
<| <A, B>(A -> B, A) -> B
|>
|> <A, B>(A, A -> B) -> B
<-
<- <A>(M<A>, A) -> Void
|*|
|*| <A, B, C>((B, B) -> C, A -> B) -> A -> A -> C
<>
<> <A : Monoid>(A, A) -> A
<^
<^ <A, B>(A, F<B>) -> F<A>
^>
^> <A, B>(F<A>, B) -> F<B>
<^>
<^> <A, B>(A -> B, F<A>) -> F<B>
<^^>
<^^> <I, J, A>(I -> J, F<I, A>) -> F<J, A>
<!>
<^> <I, J, A>(J -> I, F<I, A>) -> F<J, A>
<*>
<*> <A, B>(F<A -> B>, F<A>) -> F<B>
>>-
>>- <A, B>(F<A>, A -> F<B>) -> F<B>
-<<
-<< <A, B>(A -> F<B>, F<A>) -> F<B>
>>->>
>>->> <A, B, C>(A -> F<B>, B -> F<C>) -> A -> F<C>
<<-<<
<<-<< <A, B, C>(B -> F<C>, A -> F<B>) -> A -> F<C>
->>
->> <A, B>(F<A>, F<A> -> B) -> F<B>
<<<
<<< <C, A, B, C>(C<B, C>, C<A, B>) -> C<A, C>
>>>
>>> <C, A, B, C>(C<A, B>, C<B, C>) -> C<A, C>
&&&
&&& <A, B, C, D>(A<B, C>, A<B, D>) -> A<B, (C, D)>
***
*** <A, B, C, D, E>(A<B, C>, A<D, E>) -> A<(B, D), (C, E)>
+++
+++ <A, B, C, D, E>(A<B, C>, A<D, E>) -> A<Either<D, B>, Either<C, E>>
|||
||| <A, B, C, D, E>(A<B, D>, A<C, D>) -> A<Either<B, C>, D>
<+>
<+> <A, B, C>(A<B, C>, A<B, C>) -> A<B, C>
<?
<? <A : JSONDecodable>(JSONValue, JSONKeypath) -> A?
<??
<?? <A : JSONDecodable>(JSONValue, JSONKeypath) -> A??
<!
<! <A : JSONDecodable>(JSONValue, JSONKeypath) -> A
∪
∪ <A>(Set<A>, Set<A>) -> Set<A>
∩
∩ <A>(Set<A>, Set<A>) -> Set<A>
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
Operadics
Standard Operators for the working Swift Librarian.
Operators
Operadics introduces the following operators at global scope
•
• <A, B, C>(B -> C, A -> B) -> A -> C
§
§ <A, B>(A -> B, A) -> B
<|
<| <A, B>(A -> B, A) -> B
|>
|> <A, B>(A, A -> B) -> B
<-
<- <A>(M<A>, A) -> Void
|*|
|*| <A, B, C>((B, B) -> C, A -> B) -> A -> A -> C
<>
<> <A : Monoid>(A, A) -> A
<^
<^ <A, B>(A, F<B>) -> F<A>
^>
^> <A, B>(F<A>, B) -> F<B>
<^>
<^> <A, B>(A -> B, F<A>) -> F<B>
<^^>
<^^> <I, J, A>(I -> J, F<I, A>) -> F<J, A>
<!>
<^> <I, J, A>(J -> I, F<I, A>) -> F<J, A>
<*>
<*> <A, B>(F<A -> B>, F<A>) -> F<B>
>>-
>>- <A, B>(F<A>, A -> F<B>) -> F<B>
-<<
-<< <A, B>(A -> F<B>, F<A>) -> F<B>
>>->>
>>->> <A, B, C>(A -> F<B>, B -> F<C>) -> A -> F<C>
<<-<<
<<-<< <A, B, C>(B -> F<C>, A -> F<B>) -> A -> F<C>
->>
->> <A, B>(F<A>, F<A> -> B) -> F<B>
<<<
<<< <C, A, B, C>(C<B, C>, C<A, B>) -> C<A, C>
>>>
>>> <C, A, B, C>(C<A, B>, C<B, C>) -> C<A, C>
&&&
&&& <A, B, C, D>(A<B, C>, A<B, D>) -> A<B, (C, D)>
***
*** <A, B, C, D, E>(A<B, C>, A<D, E>) -> A<(B, D), (C, E)>
+++
+++ <A, B, C, D, E>(A<B, C>, A<D, E>) -> A<Either<D, B>, Either<C, E>>
|||
||| <A, B, C, D, E>(A<B, D>, A<C, D>) -> A<Either<B, C>, D>
<+>
<+> <A, B, C>(A<B, C>, A<B, C>) -> A<B, C>
<?
<? <A : JSONDecodable>(JSONValue, JSONKeypath) -> A?
<??
<?? <A : JSONDecodable>(JSONValue, JSONKeypath) -> A??
<!
<! <A : JSONDecodable>(JSONValue, JSONKeypath) -> A
∪
∪ <A>(Set<A>, Set<A>) -> Set<A>
∩
∩ <A>(Set<A>, Set<A>) -> Set<A>