Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Exercism Fetch Error Message

55 views
Skip to first unread message

CAI GENGYANG

unread,
Jul 25, 2016, 5:35:00 PM7/25/16
to
How to debug this error ???

CL-USER 4 : 3 > exercism fetch TRACK_ID

Error: Undefined operator EXERCISM in form (EXERCISM FETCH TRACK_ID).
1 (continue) Try invoking EXERCISM again.
2 Return some values from the form (EXERCISM FETCH TRACK_ID).
3 Try invoking something other than EXERCISM with the same arguments.
4 Set the symbol-function of EXERCISM to another function.
5 Set the macro-function of EXERCISM to another function.
6 (abort) Return to level 3.
7 Return to debug level 3.
8 Return to level 2.
9 Return to debug level 2.
10 Return to level 1.
11 Return to debug level 1.
12 Return to level 0.
13 Return to top loop level 0.

Alberto Riva

unread,
Jul 25, 2016, 7:13:16 PM7/25/16
to
On 07/25/2016 05:34 PM, CAI GENGYANG wrote:
> How to debug this error ???
>
> CL-USER 4 : 3 > exercism fetch TRACK_ID
>
> Error: Undefined operator EXERCISM in form (EXERCISM FETCH TRACK_ID).

To start, I don't think what you show above is really what you did. The
error message indicates that the problem is in form
(EXERCISM FETCH TRACK_ID), which is not what appears after the prompt in
the previous line (the parentheses are missing). I'm going to assume
that instead of copying and pasting you retyped the expression and
forgot the parentheses... which in itself shows what the underlying
cause of all your troubles is, ie that you haven't yet grasped the
basics of Lisp.

So, assuming that you actually did type "(EXERCISM FETCH TRACK_ID)" at
the prompt, the explanation is pretty simple: as the error message says
there is no operator called EXERCISM in your Lisp environment. I don't
know where that definition is supposed to come from, if you needed to
load it from a file, or through quicklisp, etc... but whatever it was,
you didn't do it.

If you had really typed "exercism fetch TRACK_ID" at the prompt, you
should have received a different error message: typing a symbol at the
prompt causes Lisp to evaluate it, ie return its current value as a
variable, and I'm pretty sure that you've not used the symbol exercism
as a variable. So you should have gotten a message saying "unbound
symbol EXERCISM" or something similar.

There's a final possibility, ie that you're working with a weird
implementation of Lisp that automatically puts parentheses around your
expressions when you forget them... but I've never seen one that does
that. What Lisp implementation are you using, just to cover all
possibilities?

Alberto

CAI GENGYANG

unread,
Jul 26, 2016, 12:25:43 AM7/26/16
to
I am using CLisp .... Can I pay a programming tutor to go through Paul Graham's Ansi Common Lisp with me fully in person lol ?

Pascal J. Bourguignon

unread,
Jul 26, 2016, 4:24:20 PM7/26/16
to
CAI GENGYANG <gengy...@gmail.com> writes:

> I am using CLisp .... Can I pay a programming tutor to go through Paul Graham's Ansi Common Lisp with me fully in person lol ?

Most probably.

But it'd probably be easier to choose one in your same or close
timezone.

In my case, I'd be free second week of August, but from Paris, so you'd
have to add to my own fee (800 euro/day @ 5 days = 4000 euro), the plane
ticket (3600 euro), and hotel (Pan Pacific has a -33% promotion, so
it'll be only 1200 euro).

If you're interested, contact me by email so I communicate you the bank
account to let you wire me the (+ 4000 3600 1200) = 8800 euro.

https://www.google.fr/flights/#search;f=CDG,ORY,BVA,XHP,XPG;t=SIN;d=2016-08-07;r=2016-08-13;sel=CDGSIN0AF256;sc=b;q=fly+from+paris+to+singapore
http://www.booking.com/searchresults.fr.html?aid=301664&dcid=1&label=singapore-nIlt1RBWBNbjIDvTqfrAvAS106735885564%3Apl%3Ata%3Ap1420%3Ap2%3Aac%3Aap1t1%3Aneg%3Afi%3Atikwd-107618632%3Alp9056139%3Ali%3Adec%3Adm&lang=fr&sid=ca4bb696b313165b914ec9015b09367e&sb=1&src=city&src_elem=sb&error_url=http%3A%2F%2Fwww.booking.com%2Fcity%2Fsg%2Fsingapore.fr.html%3Faid%3D301664%3Blabel%3Dsingapore-nIlt1RBWBNbjIDvTqfrAvAS106735885564%253Apl%253Ata%253Ap1420%253Ap2%253Aac%253Aap1t1%253Aneg%253Afi%253Atikwd-107618632%253Alp9056139%253Ali%253Adec%253Adm%3Bsid%3Dca4bb696b313165b914ec9015b09367e%3Bdcid%3D1%3Binac%3D0%26%3B&city=-73635&checkin_monthday=8&checkin_year_month=2016-8&checkout_monthday=14&checkout_year_month=2016-8&sb_travel_purpose=business&room1=A&no_rooms=1&group_adults=1&group_children=0

--
__Pascal Bourguignon__ http://www.informatimago.com/
“The factory of the future will have only two employees, a man and a
dog. The man will be there to feed the dog. The dog will be there to
keep the man from touching the equipment.” -- Carl Bass CEO Autodesk

Pascal J. Bourguignon

unread,
Jul 26, 2016, 4:38:58 PM7/26/16
to
CAI GENGYANG <gengy...@gmail.com> writes:

> How to debug this error ???

1- read the error message.
2- do whatever it's needed to avoid the error message.
3- select a restart in function of the points 1 and 2.
The problem is that there's an: Undefined operator EXERCISM in form
(EXERCISM FETCH TRACK_ID).

Therefore you should define an operator EXERCISM, taking two arguments:

(defun exercism (fetch track-id)
(declare (ignore fetch track-id)))

Then you can use the 1st restart, (continue):


C/USER[1]> (EXERCISM FETCH TRACK_ID)

*** - EVAL: undefined function EXERCISM
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of (FDEFINITION 'EXERCISM).
RETRY :R2 Retry
STORE-VALUE :R3 Input a new value for (FDEFINITION 'EXERCISM).
ABORT :R4 Abort main loop
ABORT :R5 ABORT
C/Break 1 USER[2]> (defun exercism (fetch track-id) (declare (ignore fetch track-id)))
EXERCISM
C/Break 1 USER[2]> :r2

*** - SYSTEM::READ-EVAL-PRINT: variable FETCH has no value
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of FETCH.
STORE-VALUE :R2 Input a new value for FETCH.
ABORT :R3 Abort main loop
ABORT :R4 ABORT
C/Break 1 USER[3]> :r2
New FETCH> 42

*** - SYSTEM::READ-EVAL-PRINT: variable TRACK_ID has no value
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of TRACK_ID.
STORE-VALUE :R2 Input a new value for TRACK_ID.
ABORT :R3 Abort main loop
ABORT :R4 ABORT
C/Break 1 USER[4]> :r2
New TRACK_ID> 33
NIL
C/USER[5]> ; success!

Antsan

unread,
Jul 27, 2016, 4:49:33 AM7/27/16
to
Wow, that is devious.

CAI GENGYANG

unread,
Jul 27, 2016, 1:16:24 PM7/27/16
to
Hi Pascal ,

This is great, its really hard to learn alone from scratch with zero programming experience and just relying on comp.lang.lisp. In person interaction is probably the best way to learn. I can't seem to find your email on your homepage though ...

Gengyang

CAI GENGYANG

unread,
Jul 27, 2016, 10:37:47 PM7/27/16
to
Pascal Bourguignon,

Ok, I finally found your email after much searching and sent you an email. Let me know how we should proceed, we can discuss your rates / times / how many sessions would i need to master Lisp and other details etc. Let me know, thanks alot !

Regards,

Gengyang

Pascal J. Bourguignon

unread,
Jul 28, 2016, 5:38:47 PM7/28/16
to
CAI GENGYANG <gengy...@gmail.com> writes:

> I am using CLisp ....

You weren't using clisp when you typed: 'exercism fetch TRACK_ID'
at the 'CL-USER 4 : 3 >' prompt.

When you do that with clisp, you get this print out:

C/USER[1]> exercism fetch TRACK_ID

*** - SYSTEM::READ-EVAL-PRINT: variable EXERCISM has no value
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of EXERCISM.
STORE-VALUE :R2 Input a new value for EXERCISM.
ABORT :R3 Abort main loop
ABORT :R4 ABORT
C/Break 1 USER[2]> :q

or this, with parentheses:

C/USER[3]> (exercism fetch TRACK_ID)

*** - EVAL: undefined function EXERCISM
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of (FDEFINITION 'EXERCISM).
RETRY :R2 Retry
STORE-VALUE :R3 Input a new value for (FDEFINITION 'EXERCISM).
ABORT :R4 Abort main loop
ABORT :R5 ABORT
C/Break 1 USER[4]> :q
C/USER[5]>

and not what you told us:

> Error: Undefined operator EXERCISM in form (EXERCISM FETCH TRACK_ID).
> 1 (continue) Try invoking EXERCISM again.
> 2 Return some values from the form (EXERCISM FETCH TRACK_ID).
> 3 Try invoking something other than EXERCISM with the same arguments.
> 4 Set the symbol-function of EXERCISM to another function.
> 5 Set the macro-function of EXERCISM to another function.
> 6 (abort) Return to level 3.
> 7 Return to debug level 3.
> 8 Return to level 2.
> 9 Return to debug level 2.
> 10 Return to level 1.
> 11 Return to debug level 1.
> 12 Return to level 0.
> 13 Return to top loop level 0.


0 new messages