package Ġnn l . ro cks . k act o os . scalar Ċ Ċ import Ġnn l . ro cks . k act o os . Func Ċ import Ġnn l . ro cks . k act o os . K Scalar Ċ import Ġnn l . ro cks . k act o os . Proc Ċ import Ġnn l . ro cks . k act o os . Scalar Ċ import Ġnn l . ro cks . k act o os . func . Func Of Ċ import Ġnn l . ro cks . k act o os . iterable . Iterable Of Ċ import Ġnn l . ro cks . k act o os . iterable . Mapped Ċ Ċ /** Ċ Ġ* ĠLogical Ġconjunction . Ċ Ġ* Ċ Ġ* ĠThis Ġclass Ġcan Ġbe Ġeffectively Ġused Ġto Ġiterate Ġthrough Ċ Ġ* Ġa Ġcollection , Ġjust Ġlike Ġ[ java . util . stream . Stream . forEach ] Ġworks : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġnew ĠAnd ( Ċ Ġ* ĠĠ Ġnew ĠIterable Of (" M ary ", Ġ" John ", Ġ" W illiam ", Ġ" N ap kin "), Ċ Ġ* ĠĠ Ġname Ġ-> ĠSystem . out . printf (" The Ġname : Ġ% s \ n ", Ġname ) Ċ Ġ* Ġ). value (); Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠThere Ġis Ġno Ġthread - safety Ġguarantee . Ċ Ġ* Ċ Ġ* Ġ@ param Ġiterable ĠThe Ġiterable Ċ Ġ* Ġ@ param ĠX ĠType Ġargument Ċ Ġ* Ġ@ see ĠIo Checked Scalar Ċ Ġ* Ġ@ since Ġ 0 . 8 Ċ Ġ*/ Ċ class ĠAnd Func < X Ġ: ĠAny >( private Ġval Ġiterable : ĠIterable < K Scalar < Boolean >>) Ġ: ĠScalar < Boolean > Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġproc ĠProc Ġto Ġmap ĊĠĠĠĠ Ġ* Ġ@ param Ġsrc ĠThe Ġiterable ĊĠĠĠĠ Ġ* Ġ@ param ĠX ĠType Ġof Ġitems Ġin Ġthe Ġiterable ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor Ġ( ĊĠĠĠĠĠĠĠ Ġproc : ĠProc < X >, ĊĠĠĠĠĠĠĠ Ġvar arg Ġsrc : ĠX ĊĠĠĠ Ġ) Ġ: Ġthis ( Func Of ( proc , Ġtrue ), Ġsrc . as Iterable ()) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġfunc ĠFunc Ġto Ġmap ĊĠĠĠĠ Ġ* Ġ@ param Ġsrc ĠThe Ġiterable ĊĠĠĠĠ Ġ* Ġ@ param ĠX ĠType Ġof Ġitems Ġin Ġthe Ġiterable ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġfunc : ĠFunc < X , ĠBoolean >, ĊĠĠĠĠĠĠĠ Ġvar arg Ġsrc : ĠX ĊĠĠĠ Ġ) Ġ: Ġthis ( func , ĠIterable Of ( src . as Iterable ())) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġsrc ĠThe Ġiterable ĊĠĠĠĠ Ġ* Ġ@ param Ġproc ĠProc Ġto Ġuse ĊĠĠĠĠ Ġ* Ġ@ param ĠX ĠType Ġof Ġitems Ġin Ġthe Ġiterable ĊĠĠĠĠ Ġ* Ġ@ since Ġ 0 . 2 4 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġproc : ĠProc < X >, ĊĠĠĠĠĠĠĠ Ġsrc : ĠIterable < X > ĊĠĠĠ Ġ) Ġ: Ġthis ( Func Of ( proc , Ġtrue ), Ġsrc ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġsrc ĠThe Ġiterable ĊĠĠĠĠ Ġ* Ġ@ param Ġfunc ĠFunc Ġto Ġmap ĊĠĠĠĠ Ġ* Ġ@ param ĠX ĠType Ġof Ġitems Ġin Ġthe Ġiterable ĊĠĠĠĠ Ġ* Ġ@ since Ġ 0 . 2 4 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġfunc : ĠFunc < X , ĠBoolean >, ĊĠĠĠĠĠĠĠ Ġsrc : ĠIterable < X > ĊĠĠĠ Ġ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ ĠM apped < X , ĠK Scalar < Boolean >>( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFunc Of Ġ{ Ġitem Ġ-> Ġ{ Ġfunc . apply ( item ) Ġ} Ġ}, Ġsrc ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġinvoke (): ĠBoolean Ġ= ĠAnd ( iterable ). invoke () Ċ } Ċ