Skip to content

Commit

Permalink
refactor(iterators): use Predicate/Predicate2
Browse files Browse the repository at this point in the history
  • Loading branch information
postspectacular committed Jan 31, 2018
1 parent fbf8453 commit 42bbb86
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 6 deletions.
4 changes: 3 additions & 1 deletion packages/iterators/src/dedupe-with.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { Predicate2 } from "@thi.ng/api/api";

import { iterator } from "./iterator";

export function* dedupeWith<T>(equiv: (a: T, b: T) => boolean, input: Iterable<T>) {
export function* dedupeWith<T>(equiv: Predicate2<T>, input: Iterable<T>) {
let iter = iterator(input),
v: IteratorResult<T>,
prev: T;
Expand Down
4 changes: 3 additions & 1 deletion packages/iterators/src/drop-while.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { Predicate } from "@thi.ng/api/api";

import { ensureIterator } from "./ensure";

export function* dropWhile<T>(pred: (x: T) => boolean, input: Iterable<T>) {
export function* dropWhile<T>(pred: Predicate<T>, input: Iterable<T>) {
let iter = ensureIterator(input),
v: IteratorResult<T>;
while (((v = iter.next()), !v.done && pred(v.value) === true)) { }
Expand Down
4 changes: 3 additions & 1 deletion packages/iterators/src/every.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { Predicate } from "@thi.ng/api/api";

import { iterator } from "./iterator";

export function every<T>(pred: (x: T) => boolean, input: Iterable<T>) {
export function every<T>(pred: Predicate<T>, input: Iterable<T>) {
let iter = iterator(input),
v: IteratorResult<T>,
empty = true;
Expand Down
4 changes: 3 additions & 1 deletion packages/iterators/src/filter.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { Predicate } from "@thi.ng/api/api";

import { iterator } from "./iterator";

export function* filter<T>(pred: (x: T) => boolean, input: Iterable<T>) {
export function* filter<T>(pred: Predicate<T>, input: Iterable<T>) {
let iter = iterator(input),
v: IteratorResult<T>;
while (((v = iter.next()), !v.done)) {
Expand Down
4 changes: 3 additions & 1 deletion packages/iterators/src/some.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { Predicate } from "@thi.ng/api/api";

import { iterator } from "./iterator";

export function some<T>(pred: (x: T) => boolean, input: Iterable<T>) {
export function some<T>(pred: Predicate<T>, input: Iterable<T>) {
let iter = iterator(input),
v: IteratorResult<T>;
while (((v = iter.next()), !v.done)) {
Expand Down
4 changes: 3 additions & 1 deletion packages/iterators/src/take-while.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { Predicate } from "@thi.ng/api/api";

import { iterator } from "./iterator";

export function* takeWhile<T>(pred: (x: T) => boolean, input: Iterable<T>) {
export function* takeWhile<T>(pred: Predicate<T>, input: Iterable<T>) {
let iter = iterator(input),
v: IteratorResult<T>;
while (((v = iter.next()), !v.done && pred(v.value))) {
Expand Down

0 comments on commit 42bbb86

Please sign in to comment.