@@ -600,15 +600,15 @@ function array_subindex(v, idx) = [
600600// list_range(4); // Returns [0,1,2,3]
601601// list_range(n=4, step=2); // Returns [0,2,4,6]
602602// list_range(n=4, s=3, step=3); // Returns [3,6,9,12]
603- // list_range(n=4 , s=3 , e=9, step=3 ); // Returns [3,6,9 ]
603+ // list_range(n=5 , s=0 , e=10 ); // Returns [0, 2.5, 5, 7.5, 10 ]
604604// list_range(e=3); // Returns [0,1,2,3]
605605// list_range(e=6, step=2); // Returns [0,2,4,6]
606606// list_range(s=3, e=5); // Returns [3,4,5]
607607// list_range(s=3, e=8, step=2); // Returns [3,5,7]
608608// list_range(s=4, e=8, step=2); // Returns [4,6,8]
609609// list_range(n=4, s=[3,4], step=[2,3]); // Returns [[3,4], [5,7], [7,10], [9,13]]
610610function list_range(n= undef, s= 0 , e= undef, step= 1 ) =
611- (n!= undef && e!= undef)? [for (i= [0 :n- 1 ]) let(v = s + step * i) if (v <= e) v ] :
611+ (n!= undef && e!= undef)? [for (i= [0 :1 : n- 1 ]) s + (e - s) * i/(n - 1 ) ] :
612612 (n!= undef)? [for (i= [0 :n- 1 ]) let(v= s+ step* i) v] :
613613 (e!= undef)? [for (v= [s:step:e]) v] :
614614 assertion(false , "Must supply one of `n` or `e`." );
0 commit comments