Romano wrote:
>  good, but so you sort with all the line.

Well, it was so much faster that way... :)

>  Your previous code used a map funtion which was not included.

Here it is:

Rebol [
    Name: 'Map
    Title: "Map"
    File: %"Map.r"
    Author: "Andrew Martin"
    eMail: [EMAIL PROTECTED]
    Web: http://valley.150m.com
    Date: 26/August/2002
    Version: 1.1.0
    Purpose: {Maps or applies the function to all elements of the series.}
    Category: [util 1]
    Acknowledgements: [
        "Joel Neely"
        "Ladislav"
        ]
    Example: [
        Map func [n [number!]] [n * n] [1 2 3]
        ;== [1 4 9]
        Map [1 2 3] func [n [number!]] [n * n]
        ;== [1 4 9]
        Map [1 2 3 4 5 6] func [a] [print [a]]
        ;1
        ;2
        ;3
        ;4
        ;5
        ;6
        ;== []
        Map [1 2 3 4 5 6] func [a b] [print [a b]]
        ;1 2
        ;3 4
        ;5 6
        ;== []
        Map [1 2 3 4 5 6] func [a b c] [print [a b c]]
        ;1 2 3
        ;4 5 6
        ;== []
        ]
    Requires: %Arguments.r
    ]

Map: function [
    {Maps or applies the function to all elements of the series.}
    Arg1 [any-function! series!]
    Arg2 [any-function! series!]
    /Only "Inserts the result of the function as a series."
    ][
    Result Results Function Series
    ][
    any [
        all [
            any-function? :Arg1 series? :Arg2
            (Function: :Arg1 Series: :Arg2)
            ]
        all [
            any-function? :Arg2 series? :Arg1
            (Function: :Arg2 Series: :Arg1)
            ]
        throw make error! reduce [
            'script 'cannot-use rejoin [
                {"} mold 'Map " " mold type? :Arg1 {"}
                ]
            rejoin [
                {"} mold type? :Arg2 {"}
                ]
            ]
        ]
    Results: make Series length? Series
    do compose/deep [
        foreach [(Arguments :Function)] Series [
            if all [
                not unset? set/any 'Result Function (Arguments :Function)
                not none? Result
                ] [
                either only [
                    insert/only tail Results :Result
                    ][
                    insert tail Results :Result
                    ]
                ]
            ]
        ]
    Results
    ]

Andrew Martin
ICQ: 26227169 http://valley.150m.com/
-><-


-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to