Files
mercury/tests/hard_coded/array_gen.m
Julien Fischer 5297b5ab40 Add procedures to the array module for creating and filling new arrays in a
Branches: main

Add procedures to the array module for creating and filling new arrays in a
single call.  (This avoids situations where the elements of a newly created
array are set to initial value which is then immediately overwritten.)

library/array.m:
	Add the function array.generate/2 and the predicate
	array.generate_foldl/5.

	Add an XXX regarding some C# foreign code in this module.

NEWS:
	Announce the new predicate and function.

tests/hard_coded/Mmakefile:
tests/hard_coded/array_gen.{m,exp}:
	Test the new functionality.
2011-05-24 07:35:29 +00:00

30 lines
598 B
Mathematica

% Test array generators.
%
:- module array_gen.
:- interface.
:- import_module io.
:- pred main(io::di, io::uo) is det.
:- implementation.
:- import_module array.
:- import_module int.
:- import_module list.
:- import_module string.
main(!IO) :-
Array = array.generate(10, (func(I) = I * 2)),
io.write(Array, !IO),
io.nl(!IO),
array.generate_foldl(10, gen_elem, Array2, !IO),
io.write(Array2, !IO),
io.nl(!IO).
:- pred gen_elem(int::in, int::out, io::di, io::uo) is det.
gen_elem(Index, Result, !IO) :-
Result = Index * 3,
io.format("Array2[%d] = %d\n", [i(Index), i(Result)], !IO).