Commit 1b72582ee990eef61fe5484ed3cffa69e8fca2f1

Authored by David RENÉ
1 parent 33d50df7

[+] add map_compute function which allow map with a dynamic parameter.

Showing 1 changed file with 23 additions and 2 deletions   Show diff stats
anubis_dev/library/tools/function.anubis
... ... @@ -254,7 +254,28 @@ public define List($C)
254 254 [x . map_parameter(f, p1, t)]
255 255 }
256 256 .
257   -
  257 +
  258 +public define $P
  259 +/** 'map' with a dynamic parameter. A new parameter is return as a result and
  260 + * pass through as parameter with next call iteration and finally returned as
  261 + * result of the map_parameter. This allows to make computation on the parameter
  262 + * like a sum
  263 + */
  264 + map_compute
  265 + (
  266 + ($P,$B) -> $P f, //
  267 + $P p, //initial parameter
  268 + List($B) l //
  269 + ) =
  270 + if l is
  271 + {
  272 + [ ] then p,
  273 + [h . t] then
  274 + with p1 = f(p, h),
  275 + map_compute(f, p1, t)
  276 + }
  277 +.
  278 +
258 279 public define List($C)
259 280 /** 'map' with a dynamic parameter. A new parameter is return with the result and
260 281 * pass through as parameter with next call iteration
... ... @@ -669,4 +690,4 @@ public define macro $T
669 690 (($T t) |-f-> if test(t) then f(step(t)) else t)(init). // terminal call !
670 691  
671 692  
672   -
673 693 \ No newline at end of file
  694 +
... ...