Vector.foldri's type changed?

View: New views
2 Messages — Rating Filter:   Alert me  

Vector.foldri's type changed?

by Gergely Buday :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I'm to compile "legacy" code with sml/nj 110.60. I get type errors as
the author of the code supposed that Vector.foldri's last argument is
not a vector, as the Basis Library spec says:

(int * 'a * 'b -> 'b) -> 'b -> 'a vector -> 'b

but a ('a vector * int * int option) triple. The trick is obviously to use

(VectorSlice.vector o VectorSlice.slice)

in between Vector.foldri and the triple.

For historical curiousity I ask: when was this changed? Was it a
change only in the compiler, or in the Basis Library as well? The code
is supposed to compile with 110.0.7.

- Gergely

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Smlnj-list mailing list
Smlnj-list@...
https://lists.sourceforge.net/lists/listinfo/smlnj-list

Re: Vector.foldri's type changed?

by John Reppy :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The published version of the Basis documentation agrees with the our
implementation (but there may be online versions that are out of date).
When vector and array slices were added to the Basis (fairly late in the
process), we simplified the interface to the non-slice versions of the
iterators.

        - John

On Oct 12, 2007, at 8:20 AM, Gergely Buday wrote:

> Hi,
>
> I'm to compile "legacy" code with sml/nj 110.60. I get type errors as
> the author of the code supposed that Vector.foldri's last argument is
> not a vector, as the Basis Library spec says:
>
> (int * 'a * 'b -> 'b) -> 'b -> 'a vector -> 'b
>
> but a ('a vector * int * int option) triple. The trick is obviously  
> to use
>
> (VectorSlice.vector o VectorSlice.slice)
>
> in between Vector.foldri and the triple.
>
> For historical curiousity I ask: when was this changed? Was it a
> change only in the compiler, or in the Basis Library as well? The code
> is supposed to compile with 110.0.7.
>
> - Gergely
>
> ----------------------------------------------------------------------
> ---
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a  
> browser.
> Download your FREE copy of Splunk now >> http://get.splunk.com/
> _______________________________________________
> Smlnj-list mailing list
> Smlnj-list@...
> https://lists.sourceforge.net/lists/listinfo/smlnj-list
>


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Smlnj-list mailing list
Smlnj-list@...
https://lists.sourceforge.net/lists/listinfo/smlnj-list
LightInTheBox - Buy quality products at wholesale price