bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] Regex support


From: Juergen Sauermann
Subject: Re: [Bug-apl] Regex support
Date: Fri, 22 Sep 2017 18:31:22 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

Hi,

I can't speak about java. In my (previous) work life I have used about 15 different languages at
different times and for different purposes. I have not seen a single language that is suitable for
all purposes, so I normally try to understand a problem first and then pick a language in which
I can solve the problem (after all, I am a lazy guy).

The way I teach myself a new language is by taking a small sample problem and implement it in
the new language. That tells me quickly how to judge the new language and to learn what it might be
good for.

I did the same with java, but failed big time to even solve a simple problem. I if I remember correctly then
it was something like printing "hello world" onto a serial interface. After a week or so I decided that
this problem was too big for java and myself to solve and never touched java again. Java was the
only language in my life that refused to work for me and my opinion about it is accordingly. But this
opinion is, as explained above, not based on any profound knowledge of the language itself. If you
would ask me for a single adjective to characterize java, then "useless" would be the first that came
to my mind.

/// Jürgen


On 09/20/2017 10:30 PM, address@hidden wrote:
<mumble> anyone who loves grep and hates perl (and i hope java too) can't be all bad </mumble>

using apl like syntax is good    aaa' ⎕REX['s'] 'bbb'      what would monadic   ⎕REX['s'] 'bbb'      return?

On Wed, 20 Sep 2017 21:47:29 +0200
Juergen Sauermann <address@hidden> wrote:

Hi Elias,

I am generally in favour of supporting regular expressions in GNU APL.

We should do that in a way that is compatible with the way in which the most commonly used libraries
do that (even if they are lacking some features that more exotic libraries may have. Unfortunately I do not
have a full overview of all (or even any) existing libraries. I personally love grep and hate perl (the latter not
only because of their regexes).

I would like to avoid constructs like s/aaa/bbb/ where operations are kind of text-encoded into strings.
That is, IMHO, a  hack-ish programming style and should be replaced by a more APL-alike syntax such as
'aaa' ⎕REX['s'] 'bbb' or maybe 's' ⎕REX 'aaa' 'bbb'.

Or, if the number of operations is small (perl seems to have only 2, not counting the translate which is already
covered by other APL functions), then we could also have different ⎕-functions for them and thus avoiding a
third argument.

Everybody else, please feel invited to join the discussion.

Best Regards,
Jürgen Sauermann


On 09/20/2017 05:59 AM, Elias Mårtenson wrote:
On several occasions, I have felt that built-in regex support in GNU APL would be very helpful.

Implementing it should be rather simple, but I'd like to discuss how such an API should look in order for it to be as useful as possible.

I was thinking of the following form:

      regex ⎕Regex string

The way I envision this to work, is to have the function return ⍬ if there is no match, or a string containing the match, if there is one:

      'f..' ⎕Regex 'xzooy'
┏⊖┓
┃0┃
┗━┛
      'f..' ⎕Regex 'xfooy'
'foo'

If the regex has subexpressions, those matches should be returned as individual strings:

      '([0-9]+)-([0-9]+)-([0-9]+) '⎕Regex '2017-01-02'
┏→━━━━━━━━━━━━━━━┓
┃"2017" "01" "02"┃
┗∊━━━━━━━━━━━━━━━┛

This would be a very useful API, and reasonably easy to implement by simply calling into the standard regcomp() call: http://pubs.opengroup.org/onlinepubs/009695399/functions/regcomp.html

What do you think? Is this a reasonable way to implement it? Any suggestions about alternative API's?

Regards,
Elias




reply via email to

[Prev in Thread] Current Thread [Next in Thread]