Number: 997

Date:  7-May-84  9':03':44

Submitter: Sannella.PA

Source: halvorsen.pa

Subject: FB {PHYLEX':}<HALVORSEN>* causes prompt for file pattern

Assigned To: 

Attn: Jellinek

Status: Declined

In/By: 

Problem Type: Bug

Impact: Annoying

Difficulty: Easy

Frequency: Everytime

Priority: Perhaps

System: Windows and Graphics

Subsystem: Library

Machine: 

Disk: 

Lisp Version: 

Source Files: 

Microcode Version: 

Memory Size: 

File Server: 

Server Software Version: 

Disposition: 

Description: '
Date':  4 May 84 15':32 PDT'
From': halvorsen.pa'
Subject': Lisp': FB pattern misinterpreted'
To': LispSupport.pa'
'
'
Lisp System Date': 26-Apr-84 18':56':44'
Machine': Dandelion (204#13#)'
Microcode version': 24,4'
Memory size': 17777'
Frequency': Always'
Impact': Minor '
'
FB {PHYLEX':}<HALVORSEN>*'
'
causes a prompt in the promptwindow for file pattern'
'
-----'
'
Date':  7 May 84 11':38 PDT'
From': Jellinek.pa'
Subject': Re': AR 997': FB {PHYLEX':}<HALVORSEN>* causes prompt for file pattern'
In-reply-to': LispSupport.pa''s message of 7 May 84 09':04':11 PDT (Monday)'
To': halvorsen,LispSupport.pa'
'
Kris,'
	This is not a software bug; more a documentation bug.  FB is no longer a lispxmacro, but is an nlambda function.  Thus, you must type'
'
	(FB {PHYLEX':}<HALVORSEN>*)'
or'
	FB({PHYLEX':}<HALVORSEN>*)'
'
to effect the result you desire.'
'
		Herb'
'
-----'
'
Date':  7 May 84 15':46 PDT'
From': JonL.pa'
Subject': Re': AR 997': FB {PHYLEX':}<HALVORSEN>* causes prompt for file pattern'
In-reply-to': Jellinek.pa''s message of 7 May 84 11':38 PDT'
To': Jellinek.pa'
cc': halvorsen.pa, LispCore↑.pa'
'
Herb, there is a simple way to make the NLAMBDA definition work in the same contexts that the LISPXMACRO also used to work.  (Some time ago, Kelly suggested flushing LISPXMACROS, and rewriting all their functionalities as NLAMBDA''s after this style).  Typically, I would just do'
'
[DEFINEQ (FB (NLAMBDA PATTERN '
    (if (LISTP PATTERN) '
         then              (* Called like a function)'
              (SETQ PATTERN (CAR PATTERN))'
      else                 (* Called like a simple LISPXMACRO)'
              (* do nothing))'
    '
    (FILEBROWSER (OR PATTERN '
                    (PROMPTFORWORD "File browser pattern?" '
                                   NIL NIL PROMPTWINDOW]'
'
The trick here is that'
'
FB A'
'
will bind PATTERN merely to A, whereas'
'
FB A B'
'
and'
'
(FB A B)'
'
will both bind PATTERN to (A B).'
'
I still think Kelly''s suggestion ought to be taken seriously.'
'
-- JonL --'
'


Workaround: 

Test Case: 

Edit-By: Jellinek

Edit-Date: 18-May-84 10':02':53