On Wed, 12 May 2010 16:45:47 +0200 (CEST)
Michael Van Canneyt <mich...@freepascal.org> wrote:

> 
> 
> On Wed, 12 May 2010, spir ☣ wrote:
> 
> > Hello,
> >
> > * TFPList
> > Is there another way to traverse a list than
> >    for i :=0 to (list.count - 1) do ...
> 
> You can use an enumerator with the latest SVN:
> 
> foreach P in List do

Great!

> > What about list.high?
> 
> Count=High.

? In my code count=high+1. I mean list[list.count] does not exist.

> > Also, is it possible to set a list's base index to 1 (so that 
> > last_index=count)?
> 
> No. That would break all other existing code.

I don't understand. If I set myList.baseIndex := 1, how can it affect other 
people's code? It's a new feature that does not touch existing codebase.

> > There is a super handy forEachCall method (calling a proc for each item), 
> > but I cannot find a matching map method (calling a func and storing 
> > results).
> 
> What do you mean with 'Map' ?

It's the conventional name in most PLs of a higher-order function that creates 
a new sequence from an original one and a mapping func:
   cubes := map(numbers, cube)
or in OO style:
   cubes := numbers.map(cube)
But you certainly know that better than me...

> > * string <-> number
> > I could not find _functions_ to operate such conversions, only _procedures_ 
> > str and val. So that I always end up with superfluous statements and temps 
> > variables:
> >    str(n,text);
> >    writeln(text);
> 
> In SysUtils: StrToInt() and IntToStr()

Thank you. Hadn't found them.

[...]

> > * array value notation
> > I can set a static array's value on declaration line, but could not find a 
> > way to do it later (even less to change it). And I cannot find a way to set 
> > the value of a dynamic array --when it's not fed from a loop. End up with 
> > series of arr[i]:=v statements (code from the 
> > http://en.wikipedia.org/wiki/Middle_ages ;-). Same for lists, indeed.
> >    var
> >        arr : array [1..2] of Integer;
> >    ...
> >    i:=1 ; j:=2;
> >    arr := (i,j);
> >    ==> Syntax error, ")" expected, but "," found
> 
> This is only possible with dynamic arrays (no declared length), and there you 
> should use setlength.

I haven't managed to do that with dynamic arrays, even after setting length.

var
        a : array of Integer;
begin
        setLength(a, 3);
        a := (1,2,3);
        writeln(a[1]);
end.
==> same error message as above

> > Finally: is there a wiki version of the official docs, to collectively 
> > enhance them (with notes, examples, explanations...). 
> > (I'm dreaming, but after all fpc is free software, and it's the #1 reason 
> > why I chose it.) (*)
> 
> No, there is no wiki version, and there never will be.

.......


Denis
________________________________

vit esse estrany ☣

spir.wikidot.com
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to