bug-apl
[Top][All Lists]
Advanced

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

Re: [Bug-apl] Filter fns with ⍙ (delta-underbar) in the name by default


From: David B. Lamkins
Subject: Re: [Bug-apl] Filter fns with ⍙ (delta-underbar) in the name by default?
Date: Wed, 09 Jul 2014 18:43:10 -0700

Personally, I'm not a fan of having tools codify what's essential a
stylistic convention. 

Looking at it another way: This is something I call the "principle of
least surprise... An experienced APL programmer shouldn't have to be
told that )FNS, )OPS and )VARS all have a hidden feature that must be
explicitly disabled to obtain the expected (and standard) behavior.

That said: This is something that's easy to do in APL without changing
the underlying platform.  Here are a couple of functions that you could
use as a starting point:

∇z←⍙class ni ⍙set
  ⍝ Return a character array of every workspace name which includes
  ⍝ all characters in ⍙set. The empty set matches everything. The
  ⍝ optional ⍙class argument selects results by name class; the
  ⍝ default is 2 3 4 (variables, functions and operators).
  ⍎(0=⎕nc '⍙class')/'⍙class←2 3 4'
  z←⊃{ (∧/⊃(⊂,⍙set)∊¨⍵)/⍵ }{ (∧\' '≠⍵)/⍵ }¨⊂[(1+⎕io)]⎕nl ⍙class
∇

∇z←⍙class ne ⍙set
  ⍝ Return a character array of every workspace name which excludes
  ⍝ any character in ⍙set. The empty set excludes nothing. The
  ⍝ optional ⍙class argument selects results by name class; the
  ⍝ default is 2 3 4 (variables, functions and operators).
  ⍎(0=⎕nc '⍙class')/'⍙class←2 3 4'
  z←⊃{ (~∨/⊃(⊂,⍙set)∊¨⍵)/⍵ }{ (∧\' '≠⍵)/⍵ }¨⊂[(1+⎕io)]⎕nl ⍙class
∇
 

If you want to list all names not containing ⍙, do this:

      ne '⍙'

To get just the variables:

      2 ne '⍙'

Or just the functions:

      3 ne '⍙'

Or just the operators:

      4 ne '⍙'

The ni function is complementary.

Add a ]usercmd definition or three to customize this to your taste...

On Wed, 2014-07-09 at 23:12 +0800, Elias Mårtenson wrote:
> How about having the )FNS, )OPS and )VARS commands filter out names
> that contain a ⍙ symbol by default? Since the idea is that those are
> internal names it would make sense to hide them (unless some other
> flag is given).
> 
> 
> Opinions?
> 
> 
> Regards,
> Elias




reply via email to

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