Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

50
LINES

< > BotCompany Repo | #1003524 - filter

JavaX fragment (include) [tags: use-pretranspiled]

Libraryless. Click here for Pure Java version (2188L/14K).

static <A> L<A> filter(Iterable<A> c, O pred) {
  if (pred instanceof F1) ret filter(c, (F1<A, Bool>) pred);

  ifdef filter_debug
    print("Slow filter called");
  endifdef
  new L x;
  if (c != null) for (O o : c)
    if (isTrue(callF(pred, o)))
      x.add(o);
  ret x;
}

static L filter(O pred, Iterable c) {
  ret filter(c, pred);
}

static <A, B extends A> L<B> filter(Iterable<B> c, F1<A, Bool> pred) {
  new L x;
  if (c != null) for (B o : c)
    if (pred.get(o))
      x.add(o);
  ret x;
}

static <A, B extends A> L<B> filter(F1<A, Bool> pred, Iterable<B> c) {
  ret filter(c, pred);
}

//ifclass IF1
static <A, B extends A> L<B> filter(Iterable<B> c, IF1<A, Bool> pred) {
  new L x;
  if (c != null) for (B o : c)
    if (pred.get(o))
      x.add(o);
  ret x;
}

static <A, B extends A> L<B> filter(B[] c, IF1<A, Bool> pred) {
  new L x;
  if (c != null) for (B o : c)
    if (pred.get(o))
      x.add(o);
  ret x;
}

static <A, B extends A> L<B> filter(IF1<A, Bool> pred, Iterable<B> c) {
  ret filter(c, pred);
}
//endif

download  show line numbers  debug dex   

Travelled to 12 computer(s): aoiabmzegqzx, cbybwowwnfue, cfunsshuasjs, ddnzoavkxhuk, dpqxeycirhfy, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, tslmcundralx, tvejysmllsmz, whxojlpjdney

No comments. add comment

Snippet ID: #1003524
Snippet name: filter
Eternal ID of this version: #1003524/13
Text MD5: d36a787715e63a2d2833612386fd51c4
Transpilation MD5: d709a8ec8aac3faaa41fe7dd7d2ed9d0
Author: stefan
Category: javax
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2019-11-19 13:40:45
Source code size: 1085 bytes / 50 lines
Pitched / IR pitched: No / No
Views / Downloads: 384 / 474
Version history: 12 change(s)
Referenced in: [show references]

Formerly at http://tinybrain.de/1003524 & http://1003524.tinybrain.de