版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

197 строки
4.7 KiB

  1. /**
  2. * @since 2.0.0
  3. */
  4. import { Applicative2C } from './Applicative'
  5. import { Apply2C } from './Apply'
  6. import { Bifunctor2 } from './Bifunctor'
  7. import { Chain2C } from './Chain'
  8. import { ChainRec2C } from './ChainRec'
  9. import { Comonad2 } from './Comonad'
  10. import { Foldable2 } from './Foldable'
  11. import { Monad2C } from './Monad'
  12. import { Monoid } from './Monoid'
  13. import { Semigroup } from './Semigroup'
  14. import { Semigroupoid2 } from './Semigroupoid'
  15. import { Traversable2, PipeableTraverse2 } from './Traversable'
  16. import { Functor2 } from './Functor'
  17. /**
  18. * @since 2.0.0
  19. */
  20. export declare const fst: <A, E>(ea: [A, E]) => A
  21. /**
  22. * @since 2.0.0
  23. */
  24. export declare const snd: <A, E>(ea: [A, E]) => E
  25. /**
  26. * @since 2.0.0
  27. */
  28. export declare const swap: <A, E>(ea: [A, E]) => [E, A]
  29. /**
  30. * @category instances
  31. * @since 2.0.0
  32. */
  33. export declare function getApply<S>(S: Semigroup<S>): Apply2C<URI, S>
  34. /**
  35. * @category instances
  36. * @since 2.0.0
  37. */
  38. export declare function getApplicative<M>(M: Monoid<M>): Applicative2C<URI, M>
  39. /**
  40. * @category instances
  41. * @since 2.0.0
  42. */
  43. export declare function getChain<S>(S: Semigroup<S>): Chain2C<URI, S>
  44. /**
  45. * @category instances
  46. * @since 2.0.0
  47. */
  48. export declare function getMonad<M>(M: Monoid<M>): Monad2C<URI, M>
  49. /**
  50. * @category instances
  51. * @since 2.0.0
  52. */
  53. export declare function getChainRec<M>(M: Monoid<M>): ChainRec2C<URI, M>
  54. /**
  55. * Map a pair of functions over the two type arguments of the bifunctor.
  56. *
  57. * @category mapping
  58. * @since 2.0.0
  59. */
  60. export declare const bimap: <E, G, A, B>(mapSnd: (e: E) => G, mapFst: (a: A) => B) => (fa: [A, E]) => [B, G]
  61. /**
  62. * Map a function over the first component of a `Tuple`.
  63. *
  64. * This is the `map` operation of the `Functor` instance.
  65. *
  66. * @category mapping
  67. * @since 2.0.0
  68. */
  69. export declare const mapFst: <A, B>(f: (a: A) => B) => <E>(fa: [A, E]) => [B, E]
  70. /**
  71. * Map a function over the second component of a `Tuple`.
  72. *
  73. * This is the `mapLeft` operation of the `Bifunctor` instance.
  74. *
  75. * @category mapping
  76. * @since 2.10.0
  77. */
  78. export declare const mapSnd: <E, G>(f: (e: E) => G) => <A>(fa: [A, E]) => [A, G]
  79. /**
  80. * @since 2.0.0
  81. */
  82. export declare const compose: <A, B>(ab: [B, A]) => <C>(bc: [C, B]) => [C, A]
  83. /**
  84. * @since 2.0.0
  85. */
  86. export declare const extend: <E, A, B>(f: (wa: [A, E]) => B) => (wa: [A, E]) => [B, E]
  87. /**
  88. * @since 2.0.0
  89. */
  90. export declare const duplicate: <E, A>(wa: [A, E]) => [[A, E], E]
  91. /**
  92. * @category Extract
  93. * @since 2.6.2
  94. */
  95. export declare const extract: <E, A>(wa: [A, E]) => A
  96. /**
  97. * @category folding
  98. * @since 2.0.0
  99. */
  100. export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: [A, E]) => M
  101. /**
  102. * @category folding
  103. * @since 2.0.0
  104. */
  105. export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: [A, E]) => B
  106. /**
  107. * @category folding
  108. * @since 2.0.0
  109. */
  110. export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: [A, E]) => B
  111. /**
  112. * @category traversing
  113. * @since 2.6.3
  114. */
  115. export declare const traverse: PipeableTraverse2<URI>
  116. /**
  117. * @category traversing
  118. * @since 2.6.3
  119. */
  120. export declare const sequence: Traversable2<URI>['sequence']
  121. /**
  122. * @category type lambdas
  123. * @since 2.0.0
  124. */
  125. export declare const URI = 'Tuple'
  126. /**
  127. * @category type lambdas
  128. * @since 2.0.0
  129. */
  130. export declare type URI = typeof URI
  131. declare module './HKT' {
  132. interface URItoKind2<E, A> {
  133. readonly [URI]: [A, E]
  134. }
  135. }
  136. /**
  137. * @category instances
  138. * @since 2.7.0
  139. */
  140. export declare const Functor: Functor2<URI>
  141. /**
  142. * @category mapping
  143. * @since 2.10.0
  144. */
  145. export declare const flap: <A>(a: A) => <E, B>(fab: [(a: A) => B, E]) => [B, E]
  146. /**
  147. * @category instances
  148. * @since 2.7.0
  149. */
  150. export declare const Bifunctor: Bifunctor2<URI>
  151. /**
  152. * @category instances
  153. * @since 2.7.0
  154. */
  155. export declare const Semigroupoid: Semigroupoid2<URI>
  156. /**
  157. * @category instances
  158. * @since 2.7.0
  159. */
  160. export declare const Comonad: Comonad2<URI>
  161. /**
  162. * @category instances
  163. * @since 2.7.0
  164. */
  165. export declare const Foldable: Foldable2<URI>
  166. /**
  167. * @category instances
  168. * @since 2.7.0
  169. */
  170. export declare const Traversable: Traversable2<URI>
  171. /**
  172. * Use [`mapFst`](#mapfst) instead.
  173. *
  174. * @category zone of death
  175. * @since 2.0.0
  176. * @deprecated
  177. */
  178. export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: [A, E]) => [B, E]
  179. /**
  180. * Use [`mapSnd`](#mapsnd) instead.
  181. *
  182. * @category zone of death
  183. * @since 2.0.0
  184. * @deprecated
  185. */
  186. export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: [A, E]) => [A, G]
  187. /**
  188. * This instance is deprecated, use small, specific instances instead.
  189. * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.tuple`
  190. * (where `T` is from `import T from 'fp-ts/Tuple'`)
  191. *
  192. * @category zone of death
  193. * @since 2.0.0
  194. * @deprecated
  195. */
  196. export declare const tuple: Semigroupoid2<URI> & Bifunctor2<URI> & Comonad2<URI> & Foldable2<URI> & Traversable2<URI>