Apply a callback to an array: Difference between revisions
Content added Content deleted
(Undo revision 5122 by Special:Contributions/200.238.102.170 (User talk:200.238.102.170)) |
(Added Clean example) |
||
Line 232: | Line 232: | ||
for_each(ary.begin(), ary.end(), _1 = ++var(i)); // init array |
for_each(ary.begin(), ary.end(), _1 = ++var(i)); // init array |
||
transform(ary.begin(), ary.end(), ostream_iterator<int>(cout, " "), _1 * _1); // square and output |
transform(ary.begin(), ary.end(), ostream_iterator<int>(cout, " "), _1 * _1); // square and output |
||
==[[Clean]]== |
|||
[[Category:Clean]] |
|||
Define a function and an initial (unboxed) array. |
|||
square x = x * x |
|||
values :: {#Int} |
|||
values = {x \\ x <- [1 .. 10]} |
|||
One can easily define a map for arrays, which is overloaded and works for all kinds of arrays (lazy, strict, unboxed). |
|||
mapArray f array = {f x \\ x <-: array} |
|||
Apply the function to the initial array (using a comprehension) and print result. |
|||
Start :: {#Int} |
|||
Start = mapArray square values |
|||
== [[Common Lisp]] == |
== [[Common Lisp]] == |