1. Re: type string

On Wed, 17 Mar 1999, Chris Hickman wrote:

] global type string13(object x)
]
]    if atom(x) then
]       return 0
]    end if
]
]    -- ensure all elements are in the range 0 to 255
]    if compare(x, and_bits(255, x)) then
]       return 0
]    end if
]
]    -- ensure there's no sub-sequences
]    for i = 1 to length(x) do
]       if not integer(x[i]) then
]          return 0
]       end if
]    end for
]    return 1
] end type

Nice to see someone taking a leaf out of my book here, but like I say,
using my smallest-code options, you tend to lose out in the long run on
speed. :)

How 'bout:

global type string14(object x)
    if atom(x) then return 0 end if
    -- conditions in loop listed in order of likelyhood most..least
    for i = 1 to length(x) do
        if     sequence(x[i])    then return 0 end if
        -- The line below catches bad atoms, so 'not atom' is changed
        -- to 'sequence' in the line above...
        if x != and_bits(x, 255) then return 0 end if
    end for

    return 1
end type

Unbenchmarked, but I reckon it's fairly quick.

Incidentally, I've found myself using the all-on-one-line-if for types.
Usually only one condition can be checked at a time if we want speed
and/or no-error evaluation.

if message_end then puts(mailer, Name & SIG) end if
Carl

--
Carl R White -- cyrek- at -bigfoot.com -- http://www.bigfoot.com/~cyrek
 aka Cyrek   --    No hyphens :)    --       Bigfoot URL Alias

new topic     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu