🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.lang.intercal
Article #37

Re: C-INTERCAL Version 0.6 available

#37
From: Jan Hendrikx
Date: Thu, 10 Jan 1991 14:12
47 lines
2687 bytes
It looks like some people have misread the manual (that is, interpreted
it differently than I did :-). Therefore, I'll quote a bit more and
give line-by-line comments on the example I supplied.

The manual says about ABSTAIN:
	 This statement takes on one of two forms.   It may  not
    take  on  both  at  any  one time.   DO ABSTAIN FROM (label)
    causes the statement whose logical line label is (label)  to
    be  abstained from.   PLEASE ABSTAIN FROM gerund list causes
    all statements of the  specified  type(s)  to  be  abstained
    from, as in [deleted]

As you can see, a STATEMENT can be abstained from, NOT an OPERATION
(as indicated by the gerund list). Therefore, ABSTAIN FROM gerund
is equivalent to ABSTAIN FROM (label) for each statement that
consists of the specified operation.

[The second sentence (It may not take on both at any one time)
is just humorous because one statement CAN be only one form at a
time, disallowing this is just funny. It cannot mean that you
can use only one of the forms in the entire program, because
such a drastic claim would have been more explicit, and is
inconsistent with the text on REINSTATE]

And this about REINSTATE:
    REINSTATEment  nullifies  the  effects  of  an   abstention.
    Either  form  of  REINSTATEment  can  be  used  to  "free" a
    statement, regardless of whether the statement was abstained
    from  by  gerund  list,  line   label,   or   NOT.

This confirms my "abbreviation" interpretation above.

Now the example again:
       DO ABSTAIN FROM (52)
This line is irrelevant here.. it abstains from (52).
       DO ABSTAIN FROM NEXTING		(this line added by me)
This abstains from all lines with NEXT.. here that is only (52).
       DO REINSTATE (52)
This reinstates (52) and therefore undoes the previous two
abstentions. Any other statements with NEXT are not affected.
(52)   DO (123) NEXT
This should now be executed normally.
       DO ERROR: LABEL REINSTATING NOT WORKING
and therefore control should not reach this statement.

Oh, look at me... I only got the manual a few days ago and now I am
already in a violent argument about its interpretation ;-)
Technical Details
Message-ID: <2613@wn1.sci.kun.nl>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!cs.utexas.edu!uunet!mcsun!hp4nl!sci.kun.nl!wn3.sci.kun.nl!janhen
References: <11491@ur-cc.UUCP> <2609@wn1.sci.kun.nl>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!cs.utexas.edu!uunet!mcsun!hp4nl!sci.kun.nl!wn3.sci.kun.nl!janhen
From: janhen@wn3.sci.kun.nl (Jan Hendrikx)
Newsgroups: alt.lang.intercal,comp.lang.misc
Subject: Re: C-INTERCAL Version 0.6 available
Keywords: INTERCAL ftp
Message-ID: <2613@wn1.sci.kun.nl>
Date: 10 Jan 91 14:12:03 GMT
References: <11491@ur-cc.UUCP> <2609@wn1.sci.kun.nl>
Sender: root@sci.kun.nl
Followup-To: alt.lang.intercal
Organization: University of Nijmegen, The Netherlands.
Lines: 47