版博士V2.0程序
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 

259 satır
7.1 KiB

  1. /**
  2. * @since 2.5.0
  3. */
  4. import { Either } from './Either'
  5. import { Eq } from './Eq'
  6. import { Magma } from './Magma'
  7. import { Monoid } from './Monoid'
  8. import { Option } from './Option'
  9. import { Ord } from './Ord'
  10. import { Predicate } from './Predicate'
  11. import { Refinement } from './Refinement'
  12. import { Semigroup } from './Semigroup'
  13. import { Separated } from './Separated'
  14. import { Show } from './Show'
  15. /**
  16. * @category conversions
  17. * @since 2.5.0
  18. */
  19. export declare const fromSet: <A>(s: Set<A>) => ReadonlySet<A>
  20. /**
  21. * Create a set with one element
  22. *
  23. * @category constructors
  24. * @since 2.5.0
  25. */
  26. export declare const singleton: <A>(a: A) => ReadonlySet<A>
  27. /**
  28. * Create a `ReadonlySet` from a `ReadonlyArray`
  29. *
  30. * @category conversions
  31. * @since 2.10.0
  32. */
  33. export declare const fromReadonlyArray: <A>(E: Eq<A>) => (as: readonly A[]) => ReadonlySet<A>
  34. /**
  35. * @category conversions
  36. * @since 2.5.0
  37. */
  38. export declare function toSet<A>(s: ReadonlySet<A>): Set<A>
  39. /**
  40. * Projects a Set through a function
  41. *
  42. * @since 2.5.0
  43. */
  44. export declare function map<B>(E: Eq<B>): <A>(f: (x: A) => B) => (set: ReadonlySet<A>) => ReadonlySet<B>
  45. /**
  46. * @since 2.5.0
  47. */
  48. export declare function chain<B>(E: Eq<B>): <A>(f: (x: A) => ReadonlySet<B>) => (set: ReadonlySet<A>) => ReadonlySet<B>
  49. /**
  50. * @since 2.5.0
  51. */
  52. export declare function filter<A, B extends A>(refinement: Refinement<A, B>): (set: ReadonlySet<A>) => ReadonlySet<B>
  53. export declare function filter<A>(predicate: Predicate<A>): <B extends A>(set: ReadonlySet<B>) => ReadonlySet<B>
  54. export declare function filter<A>(predicate: Predicate<A>): (set: ReadonlySet<A>) => ReadonlySet<A>
  55. /**
  56. * @since 2.5.0
  57. */
  58. export declare function partition<A, B extends A>(
  59. refinement: Refinement<A, B>
  60. ): (set: ReadonlySet<A>) => Separated<ReadonlySet<A>, ReadonlySet<B>>
  61. export declare function partition<A>(
  62. predicate: Predicate<A>
  63. ): <B extends A>(set: ReadonlySet<B>) => Separated<ReadonlySet<B>, ReadonlySet<B>>
  64. export declare function partition<A>(
  65. predicate: Predicate<A>
  66. ): (set: ReadonlySet<A>) => Separated<ReadonlySet<A>, ReadonlySet<A>>
  67. /**
  68. * Form the union of two sets
  69. *
  70. * @since 2.5.0
  71. */
  72. export declare function union<A>(E: Eq<A>): {
  73. (that: ReadonlySet<A>): (me: ReadonlySet<A>) => ReadonlySet<A>
  74. (me: ReadonlySet<A>, that: ReadonlySet<A>): ReadonlySet<A>
  75. }
  76. /**
  77. * The set of elements which are in both the first and second set
  78. *
  79. * @since 2.5.0
  80. */
  81. export declare function intersection<A>(E: Eq<A>): {
  82. (that: ReadonlySet<A>): (me: ReadonlySet<A>) => ReadonlySet<A>
  83. (me: ReadonlySet<A>, that: ReadonlySet<A>): ReadonlySet<A>
  84. }
  85. /**
  86. * @since 2.5.0
  87. */
  88. export declare function partitionMap<B, C>(
  89. EB: Eq<B>,
  90. EC: Eq<C>
  91. ): <A>(f: (a: A) => Either<B, C>) => (set: ReadonlySet<A>) => Separated<ReadonlySet<B>, ReadonlySet<C>>
  92. /**
  93. * Form the set difference (`x` - `y`)
  94. *
  95. * @example
  96. * import { difference } from 'fp-ts/ReadonlySet'
  97. * import * as N from 'fp-ts/number'
  98. * import { pipe } from 'fp-ts/function'
  99. *
  100. * assert.deepStrictEqual(pipe(new Set([1, 2]), difference(N.Eq)(new Set([1, 3]))), new Set([2]))
  101. *
  102. * @since 2.5.0
  103. */
  104. export declare function difference<A>(E: Eq<A>): {
  105. (that: ReadonlySet<A>): (me: ReadonlySet<A>) => ReadonlySet<A>
  106. (me: ReadonlySet<A>, that: ReadonlySet<A>): ReadonlySet<A>
  107. }
  108. /**
  109. * @since 2.5.0
  110. */
  111. export declare function reduce<A>(O: Ord<A>): <B>(b: B, f: (b: B, a: A) => B) => (fa: ReadonlySet<A>) => B
  112. /**
  113. * @since 2.5.0
  114. */
  115. export declare function foldMap<A, M>(O: Ord<A>, M: Monoid<M>): (f: (a: A) => M) => (fa: ReadonlySet<A>) => M
  116. /**
  117. * @category folding
  118. * @since 2.11.0
  119. */
  120. export declare const reduceRight: <A>(O: Ord<A>) => <B>(b: B, f: (a: A, b: B) => B) => (fa: ReadonlySet<A>) => B
  121. /**
  122. * Insert a value into a set
  123. *
  124. * @since 2.5.0
  125. */
  126. export declare function insert<A>(E: Eq<A>): (a: A) => (set: ReadonlySet<A>) => ReadonlySet<A>
  127. /**
  128. * Delete a value from a set
  129. *
  130. * @since 2.5.0
  131. */
  132. export declare const remove: <A>(E: Eq<A>) => (a: A) => (set: ReadonlySet<A>) => ReadonlySet<A>
  133. /**
  134. * Checks an element is a member of a set;
  135. * If yes, removes the value from the set
  136. * If no, inserts the value to the set
  137. *
  138. * @since 2.10.0
  139. */
  140. export declare const toggle: <A>(E: Eq<A>) => (a: A) => (set: ReadonlySet<A>) => ReadonlySet<A>
  141. /**
  142. * @since 2.5.0
  143. */
  144. export declare const compact: <A>(E: Eq<A>) => (fa: ReadonlySet<Option<A>>) => ReadonlySet<A>
  145. /**
  146. * @since 2.5.0
  147. */
  148. export declare function separate<E, A>(
  149. EE: Eq<E>,
  150. EA: Eq<A>
  151. ): (fa: ReadonlySet<Either<E, A>>) => Separated<ReadonlySet<E>, ReadonlySet<A>>
  152. /**
  153. * @since 2.5.0
  154. */
  155. export declare function filterMap<B>(E: Eq<B>): <A>(f: (a: A) => Option<B>) => (fa: ReadonlySet<A>) => ReadonlySet<B>
  156. /**
  157. * @since 2.5.0
  158. */
  159. export declare const empty: ReadonlySet<never>
  160. /**
  161. * Test whether a `ReadonlySet` is empty.
  162. *
  163. * @since 2.10.0
  164. */
  165. export declare const isEmpty: <A>(set: ReadonlySet<A>) => boolean
  166. /**
  167. * Calculate the number of elements in a `ReadonlySet`.
  168. *
  169. * @since 2.10.0
  170. */
  171. export declare const size: <A>(set: ReadonlySet<A>) => number
  172. /**
  173. * @since 2.5.0
  174. */
  175. export declare const some: <A>(predicate: Predicate<A>) => (set: ReadonlySet<A>) => boolean
  176. /**
  177. * @since 2.5.0
  178. */
  179. export declare function every<A, B extends A>(refinement: Refinement<A, B>): Refinement<ReadonlySet<A>, ReadonlySet<B>>
  180. export declare function every<A>(predicate: Predicate<A>): Predicate<ReadonlySet<A>>
  181. /**
  182. * `true` if and only if every element in the first set is an element of the second set
  183. *
  184. * @since 2.5.0
  185. */
  186. export declare function isSubset<A>(E: Eq<A>): {
  187. (that: ReadonlySet<A>): (me: ReadonlySet<A>) => boolean
  188. (me: ReadonlySet<A>, that: ReadonlySet<A>): boolean
  189. }
  190. /**
  191. * Test if a value is a member of a set
  192. *
  193. * @since 2.5.0
  194. */
  195. export declare function elem<A>(E: Eq<A>): {
  196. (a: A): (set: ReadonlySet<A>) => boolean
  197. (a: A, set: ReadonlySet<A>): boolean
  198. }
  199. /**
  200. * Get a sorted `ReadonlyArray` of the values contained in a `ReadonlySet`.
  201. *
  202. * @category conversions
  203. * @since 2.5.0
  204. */
  205. export declare const toReadonlyArray: <A>(O: Ord<A>) => (set: ReadonlySet<A>) => readonly A[]
  206. /**
  207. * @category type lambdas
  208. * @since 2.11.0
  209. */
  210. export declare const URI = 'ReadonlySet'
  211. /**
  212. * @category type lambdas
  213. * @since 2.11.0
  214. */
  215. export declare type URI = typeof URI
  216. declare module './HKT' {
  217. interface URItoKind<A> {
  218. readonly [URI]: ReadonlySet<A>
  219. }
  220. }
  221. /**
  222. * @category instances
  223. * @since 2.5.0
  224. */
  225. export declare function getShow<A>(S: Show<A>): Show<ReadonlySet<A>>
  226. /**
  227. * @category instances
  228. * @since 2.5.0
  229. */
  230. export declare function getEq<A>(E: Eq<A>): Eq<ReadonlySet<A>>
  231. /**
  232. * @category instances
  233. * @since 2.11.0
  234. */
  235. export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlySet<A>>
  236. /**
  237. * @category instances
  238. * @since 2.5.0
  239. */
  240. export declare const getUnionMonoid: <A>(E: Eq<A>) => Monoid<ReadonlySet<A>>
  241. /**
  242. * @category instances
  243. * @since 2.5.0
  244. */
  245. export declare const getIntersectionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlySet<A>>
  246. /**
  247. * @category instances
  248. * @since 2.11.0
  249. */
  250. export declare const getDifferenceMagma: <A>(E: Eq<A>) => Magma<ReadonlySet<A>>
  251. /**
  252. * Use [`fromReadonlyArray`](#fromreadonlyarray) instead.
  253. *
  254. * @category zone of death
  255. * @since 2.5.0
  256. * @deprecated
  257. */
  258. export declare const fromArray: <A>(E: Eq<A>) => (as: ReadonlyArray<A>) => ReadonlySet<A>