The particular line I gave up on was

"        Flesch Index: 93.1/100"

what I want to get out is the 93.1  and assign it to a local variable
called Flesch.

later lines like to do things in a completly different way such as:

"        9 words, average length 3.89 characters = 1.00 syllables"



2008/7/7 Alexander Burger <[EMAIL PROTECTED]>:
> Hi Konrad,
>
> thanks for the long explanation.
>
>
>> this. when ever it prints a list it checks to see if it might be a
>> string by inspecting the first n bytes (I don't know how many) if they
>> are all printable ascii cahracters then it prints the list as a
>
> That's quite a kludge, IMHO.
>
>
>> delimiter is allready taken, and there is no alternative. so I can't
>> easily write an unpacked string in source.
>
> This is not difficult when you use the backquote read macro:
>
>   : (de foo ()
>      (let S '`(chop "abcdefghijklmnopqrstuvwxyz")
>         (prinl (reverse S))
>         (length S) ) )
>   -> foo
>
>   : (foo)
>   zyxwvutsrqponmlkjihgfedcba
>   -> 26
>
>
>> What I'm saying is that there may be a case to say that treating
>> strings as lists by default may be better then treating them as
>
> Perhaps. But this is also a matter of efficiency: A list of single
> characters takes up four times the space (and even eight times on
> 64bits) compared to the packed symbol representation.
>
> PicoLisp tries not to be overly clever. A list should be a list, and a
> symbol should be a symbol, under all circumstances. What you see is what
> you get. When you start to print things differently depending on the
> context, you'll just create confusion.
>
>
>> transient strings by default, especially as the transietn symbol names
>> are stored as lists under the hood anyway.
>
> Well, they are stored in cells, but not as lists of individual
> characters.
>
>
>> the documentation states somewhere that decision to treat strings as
>> transient symbols may have been missguided.
>
> If I recall correctly, the opposite was meant: That transient symbols
> (which are an essential feature of the language) look syntactically like
> strings in other languages.
>
> In earlier versions of PicoLisp, transient symbols had another syntax
> (i.e. :Var instead of "Var"). But then you cannot easily write transient
> symbols with white space in the name etc., and you effectively lose the
> ability to use transient symbols *like* strings in other languages.
>
>
>> Once Strings are just lists all of the normal list processing
>> functions can be appleid to them, and special characters can then be
>
> Yes, this is an important feature, and also used frequently in PicoLisp.
> It is easily achieved with (line), (chop) etc. But more important is
> that real transient symbols also have a value cell and a property list.
> This makes it possible to do things with "strings" which are not
> possible in other languages.
>
> For example, the whole locale translation mechanisms depend on the fact
> that "strings" contain their current translation in the value cell. With
> that, (prinl "house") will result in, for example, "Haus" if the locale
> is German.
>
>
>> given standard representations. The need to find out what the control
>> sequences for things like tab and new line was also a stumbling block
>> as they are not as intuitive as the '/' escapes used by most other
>> programming languages.
>
> You are free do define e.g.
>
>   : (setq "\n" "^J"  "\r" "^M"  "\t" "^I")
>
> (in the same transient scope, of course)
>
>
>> the precision of numbers varies between lines.  This last part of
>> actually parsing the numbers and getting them treated as numbers is
>> where I got up to before giving up.
>
> How did you try this? Should be no problem with the 'format' function,
> where you can pass precision and separator values.
>
> Cheers,
> - Alex
> --
> UNSUBSCRIBE: mailto:[EMAIL PROTECTED]
>
-- 
UNSUBSCRIBE: mailto:[EMAIL PROTECTED]

Reply via email to