rfc:comprehensions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
rfc:comprehensions [2019/03/11 04:47] – Revise examples and remove mention of Javascript. crellrfc:comprehensions [2019/03/11 11:53] – fix typos in code nikic
Line 31: Line 31:
 </code> </code>
  
-In both cases, ''%%'$gen%%'' is now a generator that will produce double the odd values of $list.  However, the first case uses 38 characters (with spaces) vs 94 characters (with spaces), and is easily compacted onto a single line as opposed to 7.+In both cases, ''%%$gen%%'' is now a generator that will produce double the odd values of $list.  However, the first case uses 38 characters (with spaces) vs 94 characters (with spaces), and is easily compacted onto a single line as opposed to 7.
  
 ===== Proposal ===== ===== Proposal =====
Line 212: Line 212:
  
 $result = array_map(function ($x) { $result = array_map(function ($x) {
-  $x * 2;+  return $x * 2;
 }, $list); }, $list);
  
Line 251: Line 251:
 // but I include it for completeness. // but I include it for completeness.
 $result = array_map(function($x) { $result = array_map(function($x) {
-  $x * 2+  return $x * 2;
 }, array_filter(function() { }, array_filter(function() {
-  return $x % 2+  return $x % 2;
 }, $list)); }, $list));
  
 $result = (function() use ($list) { $result = (function() use ($list) {
   foreach ($list as $x) {   foreach ($list as $x) {
-    If ($x % 2) {+    if ($x % 2) {
       yield $x * 2;       yield $x * 2;
     }     }
Line 350: Line 350:
 <code php> <code php>
 $result = array_map(function($x) { $result = array_map(function($x) {
-  $x * 2+  return $x * 2;
 }, array_filter(function() { }, array_filter(function() {
-  return $x % 2+  return $x % 2;
 }, $list)); }, $list));
  
Line 371: Line 371:
  
 <code php> <code php>
-$result = (fn() => foreach($list as $x) if ($x % 2) yield $x * 2;)();+$result = (fn() => foreach($list as $x) if ($x % 2) yield $x * 2)();
 </code> </code>
  
rfc/comprehensions.txt · Last modified: 2019/04/05 01:10 by crell