Пример #1
0
 function testParallel()
 {
     self::assertSame([123], co($this->c()));
     self::assertSame(['<b>123</b>'], co($this->b()));
     self::assertSame(['<a><b>123</b></a>'], co($this->a()));
     self::assertSame([123, 123], co($this->c(), $this->c()));
     self::assertSame([[123, 123]], co($this->d()));
     $start = microtime(true);
     list($res1, $res2, $req3) = co($this->req(1), $this->req(1), $this->req(1));
     echo microtime(true) - $start;
     self::assertSame('1', $res1->getBody());
     self::assertSame('1', $res2->getBody());
 }
Пример #2
0
 private static function asChainable($p)
 {
     switch (gettype($p)) {
         case "string":
             return cs($p);
         case "array":
             return ca($p);
         case "object":
             return co($p);
         default:
             if (is_object($p)) {
                 return c($p);
             } else {
                 return $p;
             }
     }
 }
Пример #3
0
    // medisch /BMI
    br('302505', 'BMI', '{ "wd" : 10, "sm": "bmi", "as" : 12, "vr" : "ov", "t1" : "v126|t200", "t2" : "v50|t135", "rg" : "v15|t40", "bd" : "rk", "ku" : "3025a" }');
    ui('3025a', 'BMI geef een verhouding tussen lengte en gewicht. Hiermee krijg je gemakkelijk een indcatie van onder- of over-gewicht.
	BMI kun je berekenen gewicht (in kg) / (lengte (in meter) * lengte) bv 90 kg en 1,9 m  = 90 / (1,9 x 1,9) = 24,9 <br>
	intepretatie (bron: wikipedia) minder dan 18,5	ondergewicht, 18,5 tot 25	normaal gewicht, 25 tot 27	licht overgewicht,
	27 tot 30	matig overgewicht, 30 tot 40	ernstig overgewicht, meer dan 40	ziekelijk overgewicht');
    // eenheden
    co('c33', '3025', 'BMI', '{"br" : "302505"}');
    //medisch develop
    ra('99', 'medisch rekenen');
    ra('9910', 'eenheden');
    ra('991010', 'inhoud');
    // medisch / eenheden / liter
    br('99101005', 'percentage van is', '{ "wd" : 10, "sm": "pc3", "as" : 8, "vr" : "ov", "t1" : "v1|t99", "t2" : "v1|t14", "bd" : "rk", "ku" : "991010a" }');
    ui('991010a', ' 1 procent (%) is 1 honderdste deel. bv 5 procent (%) = 10? 1% is dan 10 / 5 = 2. 100% = 100 x 2 = 200');
    co('c99', '9910', 'is percentage van', '{"br" : "99101005"}');
    // boodschappen
    bd('ovuh', 'bereken uit het hoofd en geef het juiste antwoord in');
    bd('ovpp', 'bereken op papier en geef het juiste antwoord in');
    bd('ovrk', 'bereken met rekenmachine  en geef het juiste antwoord in');
    bd('mkuh', 'bereken uit het hoofd en kies het juiste antwoord');
    bd('mkpp', 'bereken op papier en kies het juiste antwoord');
    bd('mkrk', 'bereken met rekenmachine  en kies het juiste antwoord');
    // schalen	stap | eenheid | metrische stap | factor om naar metrische stap te komen bv 20 om van druppels  naar ml
    // liters inhoud
    sc('l1', 'liter', '1|ml|1|1;2|cl|2|1;3|dl|3|1;4|l|4|1;di|1');
    sc('l2', 'liter en druppels', '1|druppels|1|20;2|ml|1|1;3|cl|2|1;4|dl|3|1;di|1');
    sc('l3', 'liter, cm³, cc, dm³', '1|cm³|1|1;2|cc|1|1;3|ml|1|1;4|cl|2|1;5|dl|3|1;6|l|4|1;7|dm³|4|1;di|1');
    sc('g1', 'gram', '1|microgram (µg = mcg)|1|1;2|milligram (mg)|4|1;3|gram(g)|7|1;4|kilogram (kg)|10|1;di|1');
    sc('g2', 'gram', '1|milligram (mg)|1|1;2|centigram(g)|2|1;3|decigram(g)|3|1;4|gram(g)|4|1;5|decagram(dag)|5|1;6|hectogram(hg)|6|1;7|kilogram (kg)|7|1;di|1');
    sc('m1', 'meter', '1|millimeter (mm)|1|1;2|centimeter (cm)|2|1;3|decimeter (dm)|3|1;4|meter (m)|4|1;5|decameter (dam)|5|1;6|hectometer (hm)|6|1;7|kilometer (km)|7|1;di|1');
Пример #4
0
 function co($generator)
 {
     if (is_callable($generator)) {
         $args = array_slice(func_get_args(), 1);
         $generator = call_user_func_array($generator, $args);
     }
     if (!$generator instanceof \Generator) {
         return toFuture($generator);
     }
     $next = function ($yield) use($generator, &$next) {
         if ($generator->valid()) {
             return co($yield)->then(function ($value) use($generator, &$next) {
                 $yield = $generator->send($value);
                 if ($generator->valid()) {
                     return $next($yield);
                 }
                 if (method_exists($generator, "getReturn")) {
                     $result = $generator->getReturn();
                     return $result === null ? $value : $result;
                 }
                 return $value;
             }, function ($e) use($generator, &$next) {
                 return $next($generator->throw($e));
             });
         } else {
             if (method_exists($generator, "getReturn")) {
                 return value($generator->getReturn());
             } else {
                 return value(null);
             }
         }
     };
     return $next($generator->current());
 }
Пример #5
0
// uitleg
ui('303005a', 'in een tank van 10 liter is zuurstof onder 200 bar druk opgeslagen. Dat betekent dat 200 liter samen geperst wordt tot 1 liter. 
De tank bevat 10 x 200 = 2000 liter zuurstof. Als de meter 154 bar aangeeft dan bevat de tank 10 x 154 = 1540 liter
');
// eenheden
co('z01', '3030', 'zuurstof', '{"br" : "30300505"}');
// medisch /BMI
br('30350505', 'BMI', '{ "wd" : 10, "sm": "bmi", "as" : 12, "vr" : "ov", "t1" : "v126|t200", "t2" : "v50|t135", "bd" : "rk", "ui" : "303505a" }');
// uitleg
ui('303505a', 'BMI geef een verhouding tussen lengte en gewicht. Hiermee krijg je gemakkelijk een indcatie van onder- of over-gewicht.
BMI kun je berekenen gewicht (in kg) / (lengte (in meter) * lengte) bv 90 kg en 1,9 m  = 90 / (1,9 x 1,9) = 24,9 <br>
intepretatie (bron: wikipedia) minder dan 18,5	ondergewicht, 18,5 tot 25	normaal gewicht, 25 tot 27	licht overgewicht,
27 tot 30	matig overgewicht, 30 tot 40	ernstig overgewicht, meer dan 40	ziekelijk overgewicht
');
// eenheden
co('i03', '3035', 'BMI', '{"br" : "30350505"}');
// boodschappen
bd('ovuh', 'bereken uit het hoofd en geef het juiste antwoord in');
bd('ovpp', 'bereken op papier en geef het juiste antwoord in');
bd('ovrk', 'bereken met rekenmachine  en geef het juiste antwoord in');
bd('mkuh', 'bereken uit het hoofd en kies het juiste antwoord');
bd('mkpp', 'bereken op papier en kies het juiste antwoord');
bd('mkrk', 'bereken met rekenmachine  en kies het juiste antwoord');
// schalen	stap | eenheid | metrische stap | factor om naar metrische stap te komen bv 20 om van druppels  naar ml
// liters inhoud
sc('l1', 'liter', '1|ml|1}1;2|cl|2|1;3|dl|3|1;4|l|4|1;di|1');
sc('l2', 'liter en druppels', '1|druppels|1|20;2|ml|1|1;3|cl|2|1;4|dl|3|1;di|1');
sc('l3', 'liter cm3, cc en dm3', '1|cm3|1|1;2|cc|1|1;3|ml|1|1;4|cl|2|1;5|dl|3|1;6|l|4|1;7|dm3|4|1;di|1');
sc('g1', 'gram', '1|microgram (µg = mcg)|1|1;2|milligram (mg)|4|1;3|gram(g)|7|1;4|kilogram (kg)|10|1;di|1');
sc('g2', 'gram', '1|milligram (mg)|1|1;2|centigram(g)|2|1;3|decigram(g)|3|1;4|gram(g)|4|1;5|decagram(dag)|5|1;6|hectogram(hg)|6|1;7|kilogram (kg)|7|1;di|1');
sc('m1', 'meter', '1|millimeter (mm)|1|1;2|centimeter (cm)|2|1;3|decimeter (dm)|3|1;4|meter (m)|4|1;5|decameter (dam)|5|1;6|hectometer (hm)|6|1;7|kilometer (km)|7|1;di|1');