2072 lines
49 KiB
Plaintext
2072 lines
49 KiB
Plaintext
|
Article 254 of comp.sources.misc:
|
|||
|
Path: puukko!santra!tut!enea!mcvax!uunet!husc6!ukma!tut.cis.ohio-state.edu!mandrill!hal!ncoast!allbery
|
|||
|
From: rsk@mace.cc.purdue.edu (Rich Kulawiec)
|
|||
|
Newsgroups: comp.sources.misc
|
|||
|
Subject: v03i076: Just for fun (something which once appeared on the net)
|
|||
|
Message-ID: <8807101545.AA21634@mace.cc.purdue.edu>
|
|||
|
Date: 10 Jul 88 15:45:48 GMT
|
|||
|
Sender: allbery@ncoast.UUCP
|
|||
|
Reply-To: rsk@mace.cc.purdue.edu (Rich Kulawiec)
|
|||
|
Lines: 2008
|
|||
|
Approved: allbery@ncoast.UUCP
|
|||
|
|
|||
|
Posting-number: Volume 3, Issue 76
|
|||
|
Submitted-by: "Rich Kulawiec" <rsk@mace.cc.purdue.edu>
|
|||
|
Archive-name: xmases
|
|||
|
|
|||
|
[Only half a year late... ;-) ++bsa]
|
|||
|
|
|||
|
I found this while doing some housecleaning in my account, and thought
|
|||
|
it was marginally interesting enough to send along to you.
|
|||
|
|
|||
|
---Rsk
|
|||
|
|
|||
|
From: ded@aplvax.UUCP
|
|||
|
Newsgroups: net.misc
|
|||
|
Subject: Merry Christmas Programs
|
|||
|
Organization: JHU/Applied Physics Lab, Laurel, MD
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Well, here it is: the long awaited list of "Merry Christmas" programs.
|
|||
|
If you are a crawled-out-from-under-a-rock sort of person and don't
|
|||
|
know what's going on here, then you should read the following sentence:
|
|||
|
I don't know what's going on here either. For some reason, I wanted
|
|||
|
to collect a group of programs which print the phrase "Merry Christmas"
|
|||
|
15 times. If you can figure out why I wanted to do this, please let
|
|||
|
me know.
|
|||
|
|
|||
|
Thanks alot to all the nice folks who inundated me with mail. Some of
|
|||
|
the submissions made extremely clever use of editors and utility languages
|
|||
|
(I'm particularly fond of the UNIX shell script by Ben Hyde). A few errors
|
|||
|
probably crept in due to transmission errors and my editing, and for that
|
|||
|
I apologize (because you're probably gonna be swamped by a horde of
|
|||
|
prepubescent fault finders).
|
|||
|
|
|||
|
Several of you requested that I (1) send you personal copies of the results,
|
|||
|
(2) send you only the more interesting examples, or (3) send you a report
|
|||
|
contrasting and comparing the various syntaxes. I lost all your names.
|
|||
|
|
|||
|
If you sent me a submission and it wasn't included, then it either duplicated
|
|||
|
a previous entry or never arrived. I deleted many comments to save space.
|
|||
|
In retrospect, that was probably a mistake.
|
|||
|
--Don Davis
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* 6502 assembly */
|
|||
|
|
|||
|
START LDX #$0F
|
|||
|
LOOP1 LDY #$10
|
|||
|
LOOP2 LDA MCDATA,Y
|
|||
|
JSR $FDF0 (CHAROUT or something like that)
|
|||
|
DEY
|
|||
|
BPL LOOP2
|
|||
|
DEX
|
|||
|
BPL LOOP1
|
|||
|
RTS
|
|||
|
|
|||
|
MCDATA ASC "
|
|||
|
|
|||
|
~ Kenn Frankel
|
|||
|
|
|||
|
...!sdcsvax!sdccs6!ix192
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Ada version */
|
|||
|
|
|||
|
with text_io; use text_io;
|
|||
|
program print_merry_christmas is
|
|||
|
|
|||
|
begin
|
|||
|
for i in 1..15 loop
|
|||
|
put("Merry Christmas"); new_line;
|
|||
|
end loop;
|
|||
|
end print_merry_Christmas;
|
|||
|
|
|||
|
I tested the program using the SuperSoft/Maranatha Ada compiler.
|
|||
|
-- Dave Norris
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Ada */
|
|||
|
|
|||
|
/* This program is merely an ordinary loop. It was developed by */
|
|||
|
/* Rob Pearce of JHU/APL. Oh yes; Rob is English. */
|
|||
|
|
|||
|
1 with text_io; use text_io;
|
|||
|
2
|
|||
|
3 procedure number_a is
|
|||
|
4
|
|||
|
5 i_max:constant integer:=15;
|
|||
|
6 type i_type is range 1..i_max;
|
|||
|
7
|
|||
|
8 package i_type_io is new integer_io(num=>i_type);
|
|||
|
9
|
|||
|
10 begin -- number_a
|
|||
|
11 for i in i_type loop
|
|||
|
12 i_type_io.put(item=>i,
|
|||
|
13 width=>2);
|
|||
|
14 put(" " &
|
|||
|
15 "God save the Queen");
|
|||
|
16 new_line;
|
|||
|
17 end loop;
|
|||
|
18 end number_a;
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Ada */
|
|||
|
|
|||
|
-- This program counts to 15, but does so via three "concurrently
|
|||
|
-- executing" tasks. The output has been modified to be a single
|
|||
|
-- character instead of the full "Merry Christmas" message. The
|
|||
|
-- first task prints, sequentially, 0..4. The second prints, in
|
|||
|
-- turn, 5..9; and the third sequentially prints A..E.
|
|||
|
--
|
|||
|
-- If we had used the full "Merry Christmas" line, then the three
|
|||
|
-- concurrent tasks would have (almost certainly) interleaved their
|
|||
|
-- respective character strings, and one would have not been able to
|
|||
|
-- read any of the messages!
|
|||
|
--
|
|||
|
-- The program was developed by Rob Pearce of JHU/APL, and was run
|
|||
|
-- on a validated Ada system, the NY University, Ada/ED. The machine
|
|||
|
-- was a VAX-11/750 under typical loading. (Note the times; they're
|
|||
|
-- about the same on an empty machine, too!) The listing has been
|
|||
|
-- edited to remove the "uninteresting" lines and the #$^& control
|
|||
|
-- characters.
|
|||
|
-- Mars Gralia
|
|||
|
-- 11/11/8
|
|||
|
|
|||
|
NYU ANSI-Ada/ED 1.1(11-Apr-83) FRI 11 NOV 83 09:27:31 PAGE 1
|
|||
|
|
|||
|
1 with text_io; use text_io;
|
|||
|
2
|
|||
|
3 procedure number_f is
|
|||
|
4
|
|||
|
5 task A;
|
|||
|
6 task B;
|
|||
|
7 task C;
|
|||
|
8
|
|||
|
9
|
|||
|
10 task body A is
|
|||
|
11
|
|||
|
12 begin -- A
|
|||
|
13 for ch in character range '0'..'4' loop
|
|||
|
14 put(ch);
|
|||
|
15 end loop;
|
|||
|
16 end A;
|
|||
|
17
|
|||
|
18
|
|||
|
19 task body B is
|
|||
|
20
|
|||
|
21 begin -- B
|
|||
|
22 for ch in character range '5'..'9' loop
|
|||
|
23 put(ch);
|
|||
|
24 end loop;
|
|||
|
25 end B;
|
|||
|
26
|
|||
|
27
|
|||
|
28 task body C is
|
|||
|
29
|
|||
|
30 begin -- C
|
|||
|
31 for ch in character range 'A'..'E' loop
|
|||
|
32 put(ch);
|
|||
|
33 end loop;
|
|||
|
34 end C;
|
|||
|
35
|
|||
|
36
|
|||
|
37 begin -- number_f
|
|||
|
38 null;
|
|||
|
39 end number_f;
|
|||
|
|
|||
|
No translation errors detected
|
|||
|
Translation time: 69 seconds
|
|||
|
|
|||
|
|
|||
|
NYU ANSI-Ada/ED 1.1(11-Apr-83) FRI 11 NOV 83 10:34:05 PAGE 1
|
|||
|
|
|||
|
Binding time: 3.3 seconds
|
|||
|
|
|||
|
Begin Ada execution
|
|||
|
|
|||
|
5A06B127C38D94E
|
|||
|
|
|||
|
Execution complete
|
|||
|
Execution time: 51 seconds
|
|||
|
I-code statements executed: 97
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Algol-60 */
|
|||
|
|
|||
|
begin comment Algol-60 version. "Print" is system defined;
|
|||
|
integer i;
|
|||
|
|
|||
|
for i := 1 step 1 until 15 do Print("Merry Christmas")
|
|||
|
|
|||
|
end
|
|||
|
|
|||
|
-- chip elliott ...decvax!dartvax!chip
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Algol-68 */
|
|||
|
|
|||
|
BEGIN
|
|||
|
TO 15
|
|||
|
DO
|
|||
|
print(("Merry Christmas",newline))
|
|||
|
OD
|
|||
|
END
|
|||
|
|
|||
|
-- Andrew Klossner (decvax!tektronix!tekecs!andrew) [UUCP]
|
|||
|
(andrew.tektronix@rand-relay) [ARPA]
|
|||
|
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* APL */
|
|||
|
__
|
|||
|
\/ PROG ; S
|
|||
|
___ __
|
|||
|
[1] ! ! <- (15, pS) p S <- 'Merry Christmas' \/
|
|||
|
---
|
|||
|
|
|||
|
Here's an APL version. Since APL uses more than the ASCII character set,
|
|||
|
I had to fake it some. The triangle is the greek character 'del' (an
|
|||
|
upside-down delta), the first symbol on line [1] is a 'quad', a
|
|||
|
rectangular block, the '<-' is a left arrow, and the lower-case 'p'
|
|||
|
is the greek character 'rho'. Have fun.
|
|||
|
|
|||
|
^-^ Bruce ^-^
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* APL */
|
|||
|
|
|||
|
15 15 rho 'Merry Christmas'
|
|||
|
|
|||
|
(rho is the greek letter of that name, the reshape operator in APL)
|
|||
|
|
|||
|
That may not count, since it's more like an expression than a
|
|||
|
program, but it will do what you asked for. I guess you could make
|
|||
|
it a program if you wanted, as follows:
|
|||
|
|
|||
|
del merry
|
|||
|
[1] 15 15 rho 'Merry Christmas'
|
|||
|
del
|
|||
|
|
|||
|
(del is a little upside-down triangle)
|
|||
|
|
|||
|
Joe Ziegler
|
|||
|
...ihnp4!pegasus!lzmi!ziegler
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* APL */
|
|||
|
|
|||
|
Here is an APL Merry Christmas. Since APL uses a different chracter set,
|
|||
|
I will use the following identifiers for non-ascii chracters:
|
|||
|
RHO - greek letter rho
|
|||
|
BOX - the rectangle or window character
|
|||
|
ASGN - the back-arrow assignment character
|
|||
|
TRI - upside-down triangle
|
|||
|
|
|||
|
TRI merry ; mesg
|
|||
|
BOX ASGN (15,RHO mesg)RHO mesg ASGN "Merry Christmas"
|
|||
|
TRI
|
|||
|
|
|||
|
---From some unknown person on the other side of uucp
|
|||
|
|
|||
|
==========================================================================
|
|||
|
/* AWK */
|
|||
|
awk 'BEGIN {for (i=1;i<=15;i++) print "Merry Xmas"}' /dev/null
|
|||
|
|
|||
|
From: seismo!mcvax!steven (Steven Pemberton)
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* AWK */
|
|||
|
(note that it wants some standard input):
|
|||
|
|
|||
|
BEGIN { for (i = 0; i < 15; i++) {
|
|||
|
printf "Merry Christmas\n"
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
From: David Chase <rbbb@rice>
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* B */
|
|||
|
(not the predecessor of "C", by the way).
|
|||
|
|
|||
|
HOW'TO MERRY'CHRISTMAS:
|
|||
|
FOR i IN {1..15}:
|
|||
|
WRITE 'Merry Christmas' /
|
|||
|
|
|||
|
The string quote in B is used like the underscore in "C".
|
|||
|
HOW'TO introduces a procedure declaration.
|
|||
|
Indentation is used for grouping statements.
|
|||
|
The slash is used in WRITE-commands to indicate a newline.
|
|||
|
Actually, this definition should be followed by a call:
|
|||
|
|
|||
|
MERRY'CHRISTMAS
|
|||
|
|
|||
|
You could also write the body of the procedure instead of the call,
|
|||
|
and then would have no need for the definition ("B" has no clear
|
|||
|
notion of what a program is; usually it's a group of procedures
|
|||
|
and functions living together in a workspace).
|
|||
|
|
|||
|
--
|
|||
|
Guido van Rossum, "B Group",
|
|||
|
Centre for Mathematics and Computer Science, (CWI, formerly MC), Amsterdam
|
|||
|
{philabs,decvax}!mcvax!guido
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Applesoft BASIC */
|
|||
|
|
|||
|
10 FOR I = 1 TO 10 : PRINT "MERRY CHRISTMAS" : NEXT I
|
|||
|
|
|||
|
---From some unknown person on the other side of uucp
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Basic-Plus (DEC Basic on RSTS/E) */
|
|||
|
|
|||
|
10 ! Merry Christmas program &
|
|||
|
! Written by David Kaufman for Usenet survey
|
|||
|
|
|||
|
20 For I = 1 to 15 \ &
|
|||
|
Print "Merry Christmas" \ &
|
|||
|
Next I
|
|||
|
|
|||
|
30 End ! Optional, but helps reloading command
|
|||
|
|
|||
|
Merry Christmas!
|
|||
|
David Kaufman
|
|||
|
...decvax!yale-comix!kaufman
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* BASIC */
|
|||
|
|
|||
|
1000 i=0
|
|||
|
1010 if i=15 then goto 1050
|
|||
|
1020 print 'Merry Christmas'
|
|||
|
1030 i = i+1
|
|||
|
1040 goto 1010
|
|||
|
1050 end
|
|||
|
|
|||
|
That's All
|
|||
|
Dave Wargo
|
|||
|
UCSD
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* bc */
|
|||
|
|
|||
|
bc<<!
|
|||
|
for(i=19^83;i<=19^83+14;i++) "Merry Christmas
|
|||
|
"
|
|||
|
!
|
|||
|
--unknown hacker
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* BCPL */
|
|||
|
|
|||
|
// Cambridge IBM implementation
|
|||
|
get "libhdr"
|
|||
|
let start(parm) be $(
|
|||
|
selectoutput(findoutput("sysprint"))
|
|||
|
for i := 1 to 15 do writef("Merry Christmas*N")
|
|||
|
$)
|
|||
|
|
|||
|
These languages courtesy of:
|
|||
|
Pavel Curtis, Cornell
|
|||
|
Mike Caplinger, Rice
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* BCPL */
|
|||
|
|
|||
|
GET "libhdr"
|
|||
|
|
|||
|
LET start() BE
|
|||
|
FOR index = 1 TO 15 DO writes("Merry Christmas*n")
|
|||
|
|
|||
|
|
|||
|
From: jd@ukc.UUCP
|
|||
|
Organization: Computing Lab. Kent University, England
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Bliss-11 */
|
|||
|
|
|||
|
module Christmas =
|
|||
|
begin \Main\
|
|||
|
|
|||
|
external MsgScan;
|
|||
|
local i;
|
|||
|
|
|||
|
incr i from 1 to 15 do
|
|||
|
MsgScan( uplit asciz "Merry Christmas%C" );
|
|||
|
|
|||
|
end \Main\
|
|||
|
eludom
|
|||
|
|
|||
|
From: leiby
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* C */
|
|||
|
|
|||
|
main()
|
|||
|
{
|
|||
|
int i;
|
|||
|
|
|||
|
for (i=0; i<15; i++)
|
|||
|
printf("Merry Christmas\n");
|
|||
|
}
|
|||
|
by Don Davis
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* CDC 6000-type assembly */
|
|||
|
|
|||
|
IDENT MERRY
|
|||
|
ENTRY MERRY
|
|||
|
SYSCOM B1
|
|||
|
|
|||
|
OUTPUT FILEB OBUF,101B,FET=8
|
|||
|
OBUF BSS 101B
|
|||
|
|
|||
|
COUNT DATA 14
|
|||
|
|
|||
|
|
|||
|
MERRY SB1 1
|
|||
|
|
|||
|
MERRY1 WRITEC OUTPUT,(=C*MERRY CHRISTMAS*)
|
|||
|
|
|||
|
SA1 COUNT
|
|||
|
SX6 X1-1
|
|||
|
SA6 COUNT
|
|||
|
NZ X1,MERRY1
|
|||
|
|
|||
|
WRITER OUTPUT,R
|
|||
|
ENDRUN
|
|||
|
END MERRY
|
|||
|
|
|||
|
Jeff Lee
|
|||
|
CSNet: Jeff @ GATech ARPA: Jeff.GATech @ CSNet-Relay
|
|||
|
uucp: ...!{sb1,allegra,ut-ngp}!gatech!jeff ...!duke!mcnc!msdc!gatech!jeff
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* CGOL */
|
|||
|
( an extensible language that translates into MACLISP)
|
|||
|
|
|||
|
for i in 1 to 15 do print "Merry Christmas"<ESC>
|
|||
|
|
|||
|
The value of this expression is nil, if you really want a list of them,
|
|||
|
|
|||
|
for i in 1 to 15 collect "Merry Christmas"<ESC>
|
|||
|
|
|||
|
Garret Swart
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* CLI */
|
|||
|
To print Merry Christmas 15 times under Data General's CLI's (command line
|
|||
|
interpreters):
|
|||
|
|
|||
|
RDOS, RTOS, DOS: MESSAGE Merry Christmas(,,,,,,,,,,,,,,,)
|
|||
|
AOS, AOS/VS: write Merry Christmas(,,,,,,,,,,,,,,,)
|
|||
|
|
|||
|
(for your information, the parenthesis indicate that the command will be
|
|||
|
executed multiple times, with possible subsitutions, so "write a(b,c) d" would
|
|||
|
write two lines: "abd" and "acd". Since nothing is substituted, the same
|
|||
|
command is executed 15 times. BTW, write can be abreviated to "wr", "wri", ...)
|
|||
|
|
|||
|
Michael Meissner
|
|||
|
Data General Corporation
|
|||
|
...{allegra, decvax!ittvax, rocky2}!datagen!mrm
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* CLU */
|
|||
|
|
|||
|
start_up = proc ()
|
|||
|
po: stream := stream$primary_output ()
|
|||
|
for i: int in int$from_to (1, 15) do
|
|||
|
stream$putl (po, "Merry Christmas")
|
|||
|
end
|
|||
|
end start_up
|
|||
|
|
|||
|
Happy Hacking!
|
|||
|
|
|||
|
Russell Finn
|
|||
|
{decvax, eagle, mit-eddie}!mit-vax!russ
|
|||
|
RUSS%MIT-VAX@MIT-ML
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* CLU */
|
|||
|
(Liskov, August 1977 CACM)
|
|||
|
|
|||
|
start_up = proc ()
|
|||
|
for i: int in int$from_to(1, 15) do
|
|||
|
stream$putl(stream$primary_output(), "Merry Christmas")
|
|||
|
end
|
|||
|
end start_up
|
|||
|
|
|||
|
Original-From: J. Dean Brock <brock@unc>
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* COBOL */
|
|||
|
|
|||
|
IDENTIFICATION DIVISION.
|
|||
|
PROGRAM-ID. XMASPRINT.
|
|||
|
ENVIRONMENT DIVISION.
|
|||
|
CONFIGURATION SECTION.
|
|||
|
SOURCE-COMPUTER. UNIVAC-1110.
|
|||
|
OBJECT-COMPUTER. UNIVAC-1110.
|
|||
|
DATA DIVISION.
|
|||
|
PROCEDURE DIVISION.
|
|||
|
0000-MAIN.
|
|||
|
PERFORM 10-PRINT 15 TIMES.
|
|||
|
STOP RUN.
|
|||
|
10-PRINT. DISPLAY 'Merry Christmas' UPON PRINTER.
|
|||
|
|
|||
|
From: seismo!decvax!sdcsvax!ittvax!dcdwest!noscvax!kemp
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Cprolog */
|
|||
|
|
|||
|
/* Write Merry Christmas 15 times in 4.1bsd Cprolog
|
|||
|
* To execute, get into prolog, then issue the commands:
|
|||
|
* |?- ['xmas.p'].
|
|||
|
* |?- xmas.
|
|||
|
*/
|
|||
|
|
|||
|
xmas :- name(Text,"Merry Christmas") , writeline(Text,15).
|
|||
|
writeline(_,0).
|
|||
|
writeline(Text,N) :- write(Text) , nl , M is N - 1 , writeline(Text,M).
|
|||
|
|
|||
|
From: seismo!decvax!microsof!ubc-vision!mprvaxa!tbray
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* dBASEII */
|
|||
|
|
|||
|
store 0 to number
|
|||
|
do while number < 15
|
|||
|
? "Merry Christmas"
|
|||
|
store 1+number to number
|
|||
|
enddo
|
|||
|
release number
|
|||
|
|
|||
|
From: seismo!philabs!sbcs!BNL!jeffy
|
|||
|
--Jeff M.
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* dBASE II */
|
|||
|
|
|||
|
SET TALK OFF
|
|||
|
STORE 0 TO counter
|
|||
|
DO WHILE counter < 15
|
|||
|
@ counter, 0 SAY "Merry Christmas"
|
|||
|
STORE counter + 1 TO counter
|
|||
|
ENDDO
|
|||
|
RETURN
|
|||
|
|
|||
|
From: mike@uokvax.UUCP
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* 'csh' command version */
|
|||
|
|
|||
|
repeat 15 echo Merry Christmas
|
|||
|
|
|||
|
Original-From: Bruce Israel <israel@umcp-cs>
|
|||
|
|
|||
|
==========================================================================
|
|||
|
/* DCL (VAX/VMS shell) */
|
|||
|
|
|||
|
$ i = 1
|
|||
|
$ loop:
|
|||
|
$ if i.gt.15 then goto done
|
|||
|
$ write sys$output "Merry Christmas"
|
|||
|
$ i = i + 1
|
|||
|
$ goto loop
|
|||
|
$ done:
|
|||
|
$ exit
|
|||
|
|
|||
|
From: David Chase <rbbb@rice>
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* DCL */
|
|||
|
And (as I noticed that Un*x shell scripts were on your list, and in
|
|||
|
the interest of equal time) here it is in DCL (Digital Command
|
|||
|
Language, a CLI which runs on many DEC machines -- I cut my teeth on
|
|||
|
VAX/VMS):
|
|||
|
|
|||
|
$ i = 1
|
|||
|
$ loop:
|
|||
|
$ write sys$output "Merry Christmas"
|
|||
|
$ i = i + 1
|
|||
|
$ if i .le. 15 then goto loop
|
|||
|
$ exit
|
|||
|
|
|||
|
Happy Hacking!
|
|||
|
|
|||
|
Russell Finn
|
|||
|
{decvax, eagle, mit-eddie}!mit-vax!russ
|
|||
|
RUSS%MIT-VAX@MIT-ML
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* DDL */
|
|||
|
|
|||
|
Here is a Merry Christmas program written in DDL. Yes DDL, the Dungeon
|
|||
|
Definition Language from UCLA. I have included a makefile
|
|||
|
in case you have never seen this stuff before.
|
|||
|
|
|||
|
*********************** xmas.ddl *************************
|
|||
|
VAR count;
|
|||
|
(count) = 1;
|
|||
|
|
|||
|
Greetings = ( WHILE ( $lt @count 15 ) :
|
|||
|
( $setg count ( $plus 1 @count ))
|
|||
|
( $say "Merry Christmas\n")
|
|||
|
)
|
|||
|
($spec 3 0 0 0 0);
|
|||
|
|
|||
|
START = ($sdem Greetings);
|
|||
|
|
|||
|
*********************** makefile *************************
|
|||
|
|
|||
|
xmas:
|
|||
|
/usr/src/games/ddl/ddlcomp tiny < tiny.ddl > ddlcomp.out
|
|||
|
|
|||
|
To run it type the following
|
|||
|
|
|||
|
`/usr/games/lib/ddlrun xmas'
|
|||
|
|
|||
|
|
|||
|
- Joel
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* ed */
|
|||
|
|
|||
|
ed - /etc/passwd<<!
|
|||
|
1,15g/./s/.*/Merry Christmas/p
|
|||
|
q
|
|||
|
!
|
|||
|
|
|||
|
From: seismo!mcvax!steven (Steven Pemberton)
|
|||
|
|
|||
|
==========================================================================
|
|||
|
/* ed */
|
|||
|
(UNIX 'standard' line editor):
|
|||
|
|
|||
|
a
|
|||
|
Merry Christmas
|
|||
|
.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
t.
|
|||
|
1,$p
|
|||
|
|
|||
|
These languages courtesy of:
|
|||
|
Pavel Curtis, Cornell
|
|||
|
Mike Caplinger, Rice
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Concurrent-Euclid */
|
|||
|
------------------
|
|||
|
var xmas :
|
|||
|
module
|
|||
|
include '%IO'
|
|||
|
initially
|
|||
|
imports (var IO)
|
|||
|
begin
|
|||
|
var i : ShortInt := 0
|
|||
|
loop
|
|||
|
IO.PutString ('Merry Christmas$N$E')
|
|||
|
i := i + 1
|
|||
|
exit when i = 15
|
|||
|
end loop
|
|||
|
end
|
|||
|
end module {xmas}
|
|||
|
------------------
|
|||
|
|
|||
|
Stephen Perelgut Computer Systems Research Group University of Toronto
|
|||
|
Usenet: {linus, ihnp4, allegra, decvax, floyd}!utcsrgv!perelgut
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Concurrent Euclid */
|
|||
|
|
|||
|
var MerryChristmas :
|
|||
|
module
|
|||
|
|
|||
|
include '%IO'
|
|||
|
|
|||
|
initially
|
|||
|
|
|||
|
imports (var IO)
|
|||
|
begin
|
|||
|
var i: SignedInt := 15
|
|||
|
|
|||
|
loop
|
|||
|
IO.PutString('Merry Christmas$N$E')
|
|||
|
i := i - 1
|
|||
|
exit when i = 0
|
|||
|
end loop
|
|||
|
end
|
|||
|
|
|||
|
end module
|
|||
|
|
|||
|
From utcsrgv!utai!rayan
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* EYE */
|
|||
|
|
|||
|
Since you said "the more obscure the better", here is the program written in
|
|||
|
EYE, a language which was implemented by Kuck & Associates, Inc. of
|
|||
|
Champaign, Illinois as an implementation language for writing a large piece
|
|||
|
of software.
|
|||
|
|
|||
|
program yule_tidings is
|
|||
|
|
|||
|
constant number_of_times_to_print_merry_christmas : integer = 15;
|
|||
|
|
|||
|
begin( yule_tidings )
|
|||
|
|
|||
|
for i:integer = 1 to number_of_times_to_print_merry_christmas
|
|||
|
loop( print_merry_christmas )
|
|||
|
|
|||
|
put( 'Merry Christmas' | );
|
|||
|
|
|||
|
endloop( print_merry_christmas );
|
|||
|
|
|||
|
end( yule_tidings );
|
|||
|
Jim Davies
|
|||
|
{pur-ee parsec}!uiucdcs!uiuccsb!davies
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* FRED */
|
|||
|
(a text editor)
|
|||
|
|
|||
|
u15 jm Merry Christmas
|
|||
|
|
|||
|
From: decvax!watmath!ljdickey
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Forth */
|
|||
|
|
|||
|
(Forth)
|
|||
|
15 0 DO ."Merry Christmas" CR LOOP
|
|||
|
|
|||
|
Adam Reed
|
|||
|
AT&T Information Systems
|
|||
|
ihnp4!hogpc!pegasus!lzmi!adam
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Forth */
|
|||
|
|
|||
|
: greetings cr 0 do ." Merry Christmas" cr loop ;
|
|||
|
|
|||
|
15 greetings
|
|||
|
|
|||
|
|
|||
|
Dave Seaman
|
|||
|
..!pur-ee!pucc-k:ags
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Fortran? */
|
|||
|
|
|||
|
If you want an obscure solution, try the following Fortran
|
|||
|
on a VAX. It works on BSD4.1, BSD4.1c and System V.
|
|||
|
|
|||
|
integer table(12)
|
|||
|
data table/248514560, -552542885, 4847, -83763968
|
|||
|
1, 323331, 1542717440, 1260, 1292108988
|
|||
|
2, 2037543525, 1919435552, 1836348265, 684897/
|
|||
|
call out(table)
|
|||
|
end
|
|||
|
|
|||
|
subroutine out(code)
|
|||
|
external code
|
|||
|
call code
|
|||
|
return
|
|||
|
end
|
|||
|
--
|
|||
|
|
|||
|
Griff Smith AT&T Bell Laboratories, Murray Hill
|
|||
|
Phone: (201) 582-7736
|
|||
|
Internet: ggs@ulysses.uucp
|
|||
|
UUCP: ulysses!ggs
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Fortran 77 */
|
|||
|
|
|||
|
program yule
|
|||
|
parameter (nwish = 15)
|
|||
|
c
|
|||
|
do 1 i = 1,nwish
|
|||
|
1 print*,'Merry Christmas'
|
|||
|
c
|
|||
|
end
|
|||
|
Jim Davies
|
|||
|
{pur-ee parsec}!uiucdcs!uiuccsb!davies
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* FP */
|
|||
|
(Backus' Functional Programming Language):
|
|||
|
(Using the syntax of Scott Baden's UNIX implementation)
|
|||
|
|
|||
|
; MC prints the string 'Merry Christmas' 15 times when applied
|
|||
|
; to any argument and returns T.
|
|||
|
{MC %T @ out @ &%"Merry Christmas\n" @ iota @ %15}
|
|||
|
|
|||
|
These languages courtesy of:
|
|||
|
Pavel Curtis, Cornell
|
|||
|
Mike Caplinger, Rice
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* GPSS */
|
|||
|
|
|||
|
SIMULATE
|
|||
|
GENERATE 1
|
|||
|
TERMINATE 1
|
|||
|
START 15,,1
|
|||
|
REPORT
|
|||
|
TEXT MERRY CHRISTMAS
|
|||
|
END
|
|||
|
|
|||
|
---From some unknown person on the other side of uucp
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* IBM 370 assembly */
|
|||
|
|
|||
|
How about this one (IBM 370 assembler running VM/VPS - a local hack at Boston
|
|||
|
University):
|
|||
|
|
|||
|
xmas csect
|
|||
|
stm r14,r12,12(r13)
|
|||
|
lr r12,r15
|
|||
|
using xmas,r12
|
|||
|
st r13,savearea+4
|
|||
|
la r13,savearea
|
|||
|
|
|||
|
*
|
|||
|
* Initialize counter
|
|||
|
*
|
|||
|
|
|||
|
xmasloop ds 0h
|
|||
|
la r2,15 Print it 15 times
|
|||
|
qio rb=xmasrb Print "Merry Christmas"
|
|||
|
bct r2,xmasloop
|
|||
|
|
|||
|
l r13,4(,r13) Restore registers
|
|||
|
lm r14,r12,12(r13)
|
|||
|
br r14 Return to OS
|
|||
|
|
|||
|
xmasrb qiorb ddname=sysprint,bufad=xmasmsg,lrecl=l'xmasmsg
|
|||
|
xmasmsg dc c' Merry Christmas' Don't forget carriage control
|
|||
|
end xmas
|
|||
|
|
|||
|
|
|||
|
If that isn't obscure, I don't know what is.
|
|||
|
|
|||
|
---Sender: reg@ima!vaxine.UUCP
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Icon */
|
|||
|
|
|||
|
# write "Merry Christmas" 15 times on standard output
|
|||
|
procedure main()
|
|||
|
every 1 to 15 do write("Merry Christmas")
|
|||
|
end
|
|||
|
|
|||
|
"1 to 15" is a generator which produces the sequence 1..15;
|
|||
|
"every X do Y" evaluates Y for each value of X;
|
|||
|
write() writes a line of text.
|
|||
|
|
|||
|
Randy Hudson
|
|||
|
decvax!cca!ima!inmet!rgh
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Icon (Version 5) */
|
|||
|
|
|||
|
procedure main()
|
|||
|
every write(|"Merry Christmas") \ 15
|
|||
|
end
|
|||
|
|
|||
|
The more canonical solution is:
|
|||
|
|
|||
|
procedure main()
|
|||
|
every 1 to 15 do
|
|||
|
write("Merry Christmas")
|
|||
|
end
|
|||
|
|
|||
|
but obviously isn't as devious.
|
|||
|
|
|||
|
---Bill Mitchell
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Imp80 */
|
|||
|
|
|||
|
%begin
|
|||
|
%integer index
|
|||
|
|
|||
|
%for index = 1, 1, 15 %cycle
|
|||
|
Print String("Merry Christmas")
|
|||
|
New Line
|
|||
|
%repeat
|
|||
|
%end %of %program
|
|||
|
|
|||
|
From: jd@ukc.UUCP
|
|||
|
Organization: Computing Lab. Kent University, England
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* The Kent Recursive Calculator */
|
|||
|
|
|||
|
there you are, here is the merry christmas program in my favourite
|
|||
|
language, krc (The Kent Recursive Calculator),
|
|||
|
a teaching and research applicative language used at the University of
|
|||
|
Kent, Canterbury, UK.
|
|||
|
the syntax is annexed and requests for the full formal description
|
|||
|
of the language (syntax+semantics) will be considered.
|
|||
|
the program is:
|
|||
|
|
|||
|
print 0 = []
|
|||
|
print n = "Merry Christmas":nl:print (n-1)
|
|||
|
|
|||
|
and the command to run it (in the interpreter) is
|
|||
|
|
|||
|
print 15!
|
|||
|
|
|||
|
silvio lemos meira
|
|||
|
computing lab
|
|||
|
university of kent at canterbury
|
|||
|
...vax135!ukc!srlm
|
|||
|
|
|||
|
SYNTAX...
|
|||
|
|
|||
|
(note: space is limited, but the syntax is available upon request;
|
|||
|
just send me a stamped, self-addressed antelope -- Don Davis)
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* LISP */
|
|||
|
|
|||
|
(do ((i 0 (add1 i)))
|
|||
|
((eq i 15))
|
|||
|
(msg "Merry Christmas" N))
|
|||
|
|
|||
|
|
|||
|
Dave Seaman
|
|||
|
..!pur-ee!pucc-k:ags
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Scheme or Maclisp or Franz Lisp */
|
|||
|
;
|
|||
|
(do ((i 0 (+ i 1)))
|
|||
|
((= i 15))
|
|||
|
(princ "Merry Christmas")
|
|||
|
(terpri) ;new line
|
|||
|
)
|
|||
|
|
|||
|
-- chip elliott ...decvax!dartvax!chip
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* MTS Lisp */
|
|||
|
|
|||
|
(repeat '( print '"Merry Christmas") 15) # MTS Lisp.
|
|||
|
Bruce Wilcox, Intermetrics Inc.
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* LSRHS Logo */
|
|||
|
(from the Usenix82 tape):
|
|||
|
|
|||
|
to greet :n
|
|||
|
10 if :n >1 then greet (:n - 1)
|
|||
|
20 print [Merry Christmas]
|
|||
|
end
|
|||
|
greet 15
|
|||
|
|
|||
|
From: seismo!decvax!trw-unix!trwspp!urban (Mike Urban)
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Logo */
|
|||
|
|
|||
|
repeat 15 [print "Merry\ Christmas]
|
|||
|
|
|||
|
These languages courtesy of:
|
|||
|
Pavel Curtis, Cornell
|
|||
|
Mike Caplinger, Rice
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* LSE */
|
|||
|
|
|||
|
Here's a language you probably have never heard of... LSE (Langue
|
|||
|
Symbolique d'Instruction, or Symbolic Language of Instruction). I
|
|||
|
used it on some ancient machine in France (of French make) and it is
|
|||
|
roughly parallel to BASIC translated to French. It sure isn't my
|
|||
|
favorite, but it's interesting...
|
|||
|
|
|||
|
10 pour i = 1 jusqua 15 faire 20
|
|||
|
20 afficher "Merry Christmas"
|
|||
|
|
|||
|
|
|||
|
Philippe Lacroute
|
|||
|
..decvax!sun!cochon
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* m4 */
|
|||
|
|
|||
|
define(`merry',`ifelse(eval($1),eval(0),,Merry Christmas
|
|||
|
`merry'(eval($1-1)))')dnl
|
|||
|
merry(15)dnl
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Joseph L. Wood, III
|
|||
|
AT&T Information Systems
|
|||
|
Laboratories, Holmdel
|
|||
|
(201) 834-3759
|
|||
|
ariel!jlw
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* MACSYMA */
|
|||
|
|
|||
|
doit() := for i:1 thru 15 do print("Merry Christmas")$
|
|||
|
|
|||
|
These languages courtesy of:
|
|||
|
Pavel Curtis, Cornell
|
|||
|
Mike Caplinger, Rice
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* make */
|
|||
|
|
|||
|
If you use the following as the description file for 'make', it
|
|||
|
will satisfy your requirement. Make can be considered a language
|
|||
|
interpreter, so what the heck.
|
|||
|
|
|||
|
---------------------- cut ------- here -----------------------------------
|
|||
|
.SILENT:
|
|||
|
|
|||
|
foo_._bar_ : # some name unlikely to already exist
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
echo merry christmas
|
|||
|
|
|||
|
---From some unknown person on the other side of uucp
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* A Maryland Text Editor procedure */
|
|||
|
---------------------------------
|
|||
|
let a=0
|
|||
|
next:test a<15
|
|||
|
escape
|
|||
|
dis 'Merry Christmas'
|
|||
|
let a=a+1
|
|||
|
jump next
|
|||
|
|
|||
|
From: seismo!decvax!sdcsvax!ittvax!dcdwest!noscvax!kemp
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Mesa 5.0 */
|
|||
|
|
|||
|
-- Here it is in Mesa 5.0; good luck trying to find an Alto or a D-machine
|
|||
|
-- on which to run it.
|
|||
|
|
|||
|
DIRECTORY
|
|||
|
IODefs: FROM "iodefs" USING [WriteLine];
|
|||
|
|
|||
|
MerryChristmas: PROGRAM IMPORTS IODefs =
|
|||
|
|
|||
|
BEGIN
|
|||
|
i: INTEGER; -- loop index
|
|||
|
FOR i IN [0..15) DO -- print the message 15 times
|
|||
|
WriteLine["Merry Christmas"]; -- this is the message, and the
|
|||
|
-- procedure WriteLine[] provides
|
|||
|
-- the carriage return
|
|||
|
ENDLOOP; -- go back and do it again
|
|||
|
|
|||
|
END. -- all done
|
|||
|
|
|||
|
-- Patrick Olmstead
|
|||
|
|
|||
|
-- ...ucbvax!menlo70!sytek!olmstead
|
|||
|
-- ...decvax!sytek!olmstead (when decvax answers the phone)
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* MIX */
|
|||
|
|
|||
|
*
|
|||
|
* THIS PROGRAM WILL PRINT "MERRY CHRISTMAS" 15 TIMES
|
|||
|
*
|
|||
|
LP EQU 18 CARD PUNCH DEVICE
|
|||
|
*
|
|||
|
MSG ALF MERR DON'T FORGET THE BLANK SPACE FOR CCTL
|
|||
|
ALF Y CHR
|
|||
|
ALF ISTMA
|
|||
|
ALF S
|
|||
|
ORIG *+20
|
|||
|
*
|
|||
|
START EQU *
|
|||
|
ENT1 0 INITIALIZE COUNTER
|
|||
|
*
|
|||
|
LOOP EQU *
|
|||
|
OUT MSG(LP) WRITE IT OUT
|
|||
|
JBUS *(LP) WAIT ON I/O
|
|||
|
INC1 1 R1 := R1 + 1
|
|||
|
CMP1 =15= IF (R1 = 15)
|
|||
|
JE DONE THEN DONE
|
|||
|
JMP LOOP ELSE DO IT AGAIN
|
|||
|
*
|
|||
|
DONE EQU *
|
|||
|
HLT AND A HAPPY NEW YEAR
|
|||
|
END START
|
|||
|
|
|||
|
|
|||
|
--
|
|||
|
Theodore Hope
|
|||
|
School of ICS, Georgia Tech, Atlanta GA
|
|||
|
CSNet: Hope @ GaTech ARPA: Hope.GaTech @ CSNet-Relay
|
|||
|
uucp: ...!{akgua,allegra,rlgvax,sb1,unmvax,ut-ngp,ut-sally}!gatech!Hope
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* MLisp */
|
|||
|
(Gosling's Emacs editor extension language):
|
|||
|
|
|||
|
(provide-prefix-argument 15 (insert-string "Merry Christmas\n"))
|
|||
|
|
|||
|
These languages courtesy of:
|
|||
|
Pavel Curtis, Cornell
|
|||
|
Mike Caplinger, Rice
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Modula-2 */
|
|||
|
|
|||
|
Module cheers;
|
|||
|
ODULEcheers;
|
|||
|
FROM InOut IMPORT WriteLn, WriteString;
|
|||
|
VAR
|
|||
|
i :CARDINAL;
|
|||
|
BEGIN
|
|||
|
FOR i := 1 TO 15 DO
|
|||
|
WriteString('Merry Christmas');
|
|||
|
WriteLn;
|
|||
|
END; (*FOR I*)
|
|||
|
END cheers.
|
|||
|
|
|||
|
From: seismo!decvax!decwrl!amd70!fortune!dsd!mush
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* MTS editor */
|
|||
|
|
|||
|
* And here is a weird one written in the MTS editor
|
|||
|
*
|
|||
|
* the @verify@-lnum says to print the new line without linenumber
|
|||
|
* '*' refers the current line number.
|
|||
|
*
|
|||
|
|
|||
|
insert "merry christmas" @verify@-lnum
|
|||
|
copy * to * copies=14 @verify@-lnum
|
|||
|
|
|||
|
---From: seismo!cmcl2!floyd!ihnp4!alberta!stephen
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Mystery Language */
|
|||
|
(Author did not include name and I don't recognize it)
|
|||
|
|
|||
|
MODULE Greetings;
|
|||
|
FROM Terminal IMPORT WriteString, WriteLn;
|
|||
|
|
|||
|
VAR i: CARDINAL;
|
|||
|
|
|||
|
BEGIN
|
|||
|
FOR i:=1 TO 15 DO
|
|||
|
WriteString("Merry Christmas");
|
|||
|
WriteLn;
|
|||
|
END; (*for*)
|
|||
|
END Greetings.
|
|||
|
|
|||
|
From: seismo!decvax!decwrl!amd70!dual!proper!opje
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Newspeak */
|
|||
|
|
|||
|
(defproc merry-xmas () (values)
|
|||
|
(do ((i 1 (1+ i)))
|
|||
|
(print "Merry Christmas")
|
|||
|
(exit-do-if (= i 15))))
|
|||
|
|
|||
|
From: John Foderaro (on an h19-u) <ucbvax!ucbkim:jkf>
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* nroff */
|
|||
|
|
|||
|
.nr i 15+1 1
|
|||
|
.de MC
|
|||
|
.if \\n-i \{ .tl ''Merry Christmas''
|
|||
|
. MC \}
|
|||
|
..
|
|||
|
.MC
|
|||
|
|
|||
|
|
|||
|
R. Drew Davis pyuxbb!drew
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* OOPC */
|
|||
|
(an object-oriented preprocessor for C):
|
|||
|
|
|||
|
main()
|
|||
|
{
|
|||
|
int i;
|
|||
|
|
|||
|
for (i=0; i<15; i++)
|
|||
|
printf("Merry Christmas\n");
|
|||
|
}
|
|||
|
|
|||
|
If it looks a lot like C, that's because it is. The object-oriented features
|
|||
|
are only used when you're dealing with objects (you can use C wherever
|
|||
|
you want).
|
|||
|
|
|||
|
|
|||
|
Karl Freburger
|
|||
|
decvax!ittvax!freb
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* OPS5 */
|
|||
|
|
|||
|
; A program to print Merry Christmas 15 times, in OPS5.
|
|||
|
; OPS5 is a simple AI/expert systems language for writing
|
|||
|
; production systems in.
|
|||
|
(literalize counter value) ; Analogous to a record declaration.
|
|||
|
; The program: A single production.
|
|||
|
(p print-one-merry-christmas ; if
|
|||
|
(counter ^value {<c> > 0}) ; counter.value > 0
|
|||
|
--> ; then
|
|||
|
(write (crlf) Merry Christmas) ; write("Merry christmas");
|
|||
|
(modify 1 ^value (compute <c> - 1))) ; counter.value -:= 1;
|
|||
|
(make counter ^value 15) ; Create a counter with value=15
|
|||
|
(watch 0) ; No tracing.
|
|||
|
(run) ; Go for it.
|
|||
|
|
|||
|
; Ben Hyde, Intermetrics Inc.
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Pascal */
|
|||
|
|
|||
|
program yuletidings (output);
|
|||
|
const
|
|||
|
numberofwishes = 15;
|
|||
|
var
|
|||
|
i : integer;
|
|||
|
|
|||
|
begin
|
|||
|
for i := 1 to numberofwishes do
|
|||
|
writeln('Merry Christmas');
|
|||
|
end.
|
|||
|
Jim Davies
|
|||
|
{pur-ee parsec}!uiucdcs!uiuccsb!davies
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* PDP-11 assembler */
|
|||
|
(under RT-11)
|
|||
|
|
|||
|
.TITLE MERRY XMAS
|
|||
|
.IDENT /R M/
|
|||
|
.NLIST BEX
|
|||
|
.DSABL GBL
|
|||
|
.ENABL LC
|
|||
|
|
|||
|
|
|||
|
|
|||
|
.MACLL .PRINT, .EXIT
|
|||
|
|
|||
|
|
|||
|
|
|||
|
MERRY::
|
|||
|
MOV #15.,R4 ;set up the print count
|
|||
|
.PRINT #MSG1 ;print the message
|
|||
|
SOB R4,MERRY ;loop until finished
|
|||
|
|
|||
|
.EXIT ;return to RT-11
|
|||
|
|
|||
|
MSG1: .ASCIZ /Merry Christmas !!!/
|
|||
|
.EVEN
|
|||
|
|
|||
|
.END MERRY
|
|||
|
|
|||
|
From: seismo!utah-cs!pwa-b!miorelli
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* PDP-11 assembler */
|
|||
|
(under UNIX)
|
|||
|
|
|||
|
mov $15.,r4
|
|||
|
1:
|
|||
|
mov $1,r0
|
|||
|
sys write; 2f; 3f-2f
|
|||
|
bcs 1f
|
|||
|
sob r4,1b
|
|||
|
clr r0
|
|||
|
1:
|
|||
|
sys exit
|
|||
|
.data
|
|||
|
2: <Merry Christmas\n\0>
|
|||
|
3:
|
|||
|
|
|||
|
Jim McKie Mathematisch Centrum, Amsterdam ....mcvax!jim
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* PL/I version. ANS PL/I, subset G. */
|
|||
|
|
|||
|
merry: proc options(main);
|
|||
|
|
|||
|
dcl i fixed binary;
|
|||
|
|
|||
|
do i = 1 to 15;
|
|||
|
|
|||
|
put skip edit('Merry Christmas') (a);
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
end merry;
|
|||
|
|
|||
|
-- chip elliott ...decvax!dartvax!chip
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* PL/1 */
|
|||
|
|
|||
|
START: PROC OPTIONS(MAIN);
|
|||
|
DCL I FIXED BINARY(15); /* LONG FORM; SAME AS DCL I; */
|
|||
|
DO I = 1 TO 15;
|
|||
|
PUT EDIT ("Merry Christmas");
|
|||
|
END;
|
|||
|
END START;
|
|||
|
julie
|
|||
|
seismo!philabs!jah
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* PL/1 */
|
|||
|
|
|||
|
yule: proc options(main);
|
|||
|
|
|||
|
%numwish = '15';
|
|||
|
|
|||
|
do i = 1,numwish;
|
|||
|
put skip list('Merry Christmas');
|
|||
|
end;
|
|||
|
|
|||
|
end yule;
|
|||
|
|
|||
|
Jim Davies
|
|||
|
{pur-ee parsec}!uiucdcs!uiuccsb!davies
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Pr1me assembly */
|
|||
|
|
|||
|
SEG
|
|||
|
RLIT
|
|||
|
SUBR PRINT
|
|||
|
|
|||
|
LINK
|
|||
|
PRINT ECB START
|
|||
|
|
|||
|
DYNM COUNT
|
|||
|
PROC
|
|||
|
|
|||
|
|
|||
|
START LDA =15
|
|||
|
STA COUNT
|
|||
|
|
|||
|
START1 LDA COUNT
|
|||
|
BEQ DONE
|
|||
|
S1A
|
|||
|
STA COUNT
|
|||
|
|
|||
|
CALL TNOU
|
|||
|
AP =C'Merry Christmas',S
|
|||
|
AP =15,SL
|
|||
|
|
|||
|
JMP START1
|
|||
|
|
|||
|
DONE PRTN
|
|||
|
END
|
|||
|
|
|||
|
|
|||
|
Jeff Lee
|
|||
|
CSNet: Jeff @ GATech ARPA: Jeff.GATech @ CSNet-Relay
|
|||
|
uucp: ...!{sb1,allegra,ut-ngp}!gatech!jeff ...!duke!mcnc!msdc!gatech!jeff
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Prolog */
|
|||
|
|
|||
|
hello(0) :- !.
|
|||
|
hello(N) :- M is N - 1, print("Merry Christmas"), hello(M), !.
|
|||
|
hello(15)!
|
|||
|
|
|||
|
(I'm just learning prolog, so my apologies if the style is wrong.)
|
|||
|
|
|||
|
Aloke Prabhakar
|
|||
|
prabhaka@BERKELEY
|
|||
|
ucbvax!prabhaka
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Prolog */
|
|||
|
|
|||
|
wmc:- countmc(15).
|
|||
|
countmc(0).
|
|||
|
countmc(Count):- write('Merry Christmas'), nl, Ncnt is Count-1, countmc(Ncnt).
|
|||
|
|
|||
|
|
|||
|
--Peter Borgwardt, U. of Minnesota
|
|||
|
borgward.umn-cs@rand-relay
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* REVE */
|
|||
|
(Equational-programming/term-rewriting system):
|
|||
|
|
|||
|
(Has no I/O. This will look like
|
|||
|
merry_christmas(merry_christmas(...))
|
|||
|
Also, to avoid having to specify 15 as the fifteenth successor of zero,
|
|||
|
we define addition and multiplication.)
|
|||
|
|
|||
|
(x + 0) == x
|
|||
|
(x + s(y)) == (s(x) + y)
|
|||
|
(x * 0) == 0
|
|||
|
(x * s(y)) == (x + (x * y))
|
|||
|
mc(s(0)) == merry_christmas
|
|||
|
mc(s(s(x))) == merry_christmas(mc(s(x)))
|
|||
|
|
|||
|
mc( (s(s(s(0))) * s(s(s(s(s(0)))))) )
|
|||
|
|
|||
|
These languages courtesy of:
|
|||
|
Pavel Curtis, Cornell
|
|||
|
Mike Caplinger, Rice
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* *roff */
|
|||
|
|
|||
|
Well, the most natural choice for Merry Christmas is of course:
|
|||
|
V/N/T/DIT/roff.
|
|||
|
|
|||
|
This will print it on the standard output, It will give you an extra blank line,
|
|||
|
sorry about that.
|
|||
|
|
|||
|
.fp 1 MC
|
|||
|
.pl 1
|
|||
|
.nf
|
|||
|
.nr l 0 +1
|
|||
|
.de mm
|
|||
|
.if \\n+l=15 .rm mm
|
|||
|
Merry Christmas
|
|||
|
.mm
|
|||
|
..
|
|||
|
.mm
|
|||
|
|
|||
|
The font MC is of course your local ``Merry Christmas font''; all the characters
|
|||
|
are built from christmas trees.
|
|||
|
If you don't want the extra newline you can use the error output:
|
|||
|
|
|||
|
.de mm
|
|||
|
.if \\nk=14 .ab Merry Christmas
|
|||
|
.nr k +1
|
|||
|
.tm Merry Christmas
|
|||
|
.mm
|
|||
|
..
|
|||
|
.mm
|
|||
|
|
|||
|
Of course, you loose the nice look of the MC font.
|
|||
|
|
|||
|
There are of course about a dozen other ways to use troff for this.
|
|||
|
|
|||
|
-- jaap akkerhuis (mcvax!jaap)
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* QC */
|
|||
|
|
|||
|
/*
|
|||
|
* This program is written in the language QC (quick & clean), a
|
|||
|
* descendant of QD (quick & dirty). Both languages were written by
|
|||
|
* Chris Grey for 370/ systems runing MTS (a user-friendly operating
|
|||
|
* system).
|
|||
|
*/
|
|||
|
proc main():
|
|||
|
int I;
|
|||
|
extern printf;
|
|||
|
for I from 1 upto 15 do
|
|||
|
printf("Merry Christmas")
|
|||
|
od
|
|||
|
corp
|
|||
|
---From: seismo!cmcl2!floyd!ihnp4!alberta!stephen
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* sed script */
|
|||
|
|
|||
|
echo 'Mery Chistma' |
|
|||
|
sed '
|
|||
|
s/\(..\)\(.\)\(....\)\(.\)\(.\)\(...\)/\1\2\2\3\2\4\5\6\5/
|
|||
|
h;G;G
|
|||
|
s/$/\
|
|||
|
/
|
|||
|
s/.*/&&&&&/
|
|||
|
'
|
|||
|
From: seismo!decvax!ucbvax!reed!phillips
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* SETL */
|
|||
|
(Doesn't use any of the interesting features of the language):
|
|||
|
|
|||
|
definef main();
|
|||
|
(1 <= forall i <= 15) print('Merry Christmas');
|
|||
|
end main;.
|
|||
|
|
|||
|
These languages courtesy of:
|
|||
|
Pavel Curtis, Cornell
|
|||
|
Mike Caplinger, Rice
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* XEROX sigma-7 assembler */
|
|||
|
(running under CP-V)
|
|||
|
|
|||
|
SYSTEM SIG7
|
|||
|
SYSTEM BPM
|
|||
|
REF M:LO
|
|||
|
BUFR TEXT 'MERRY CHRISTMAS'
|
|||
|
START LI,4 15
|
|||
|
M:WRITE M:LO,(BUF,BUFR),(SIZE,15)
|
|||
|
BDR,4 START+1
|
|||
|
M:EXIT
|
|||
|
END START
|
|||
|
|
|||
|
or, you can avoid loading the BPM macro's by doing your own FPT
|
|||
|
|
|||
|
SYSTEM SIG7
|
|||
|
REF M:LO
|
|||
|
BUFR TEXT 'MERRY CHRISTMAS'
|
|||
|
FPT GEN,8,24 X'11',M:LO
|
|||
|
GEN,4,28 3,X'10'
|
|||
|
DATA BUFR
|
|||
|
DATA 15
|
|||
|
START LI,4 15
|
|||
|
CAL1,1 FPT
|
|||
|
BDR,4 START
|
|||
|
CAL1,9 1
|
|||
|
END START
|
|||
|
|
|||
|
Bob McQueer
|
|||
|
druxt!mcq
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Smalltalk-80 */
|
|||
|
|
|||
|
output <- WriteStream on: (String new: 10).
|
|||
|
1 to 15 do: [
|
|||
|
output nextPutAll: 'Merry Christmas'.
|
|||
|
output cr
|
|||
|
].
|
|||
|
output contents.
|
|||
|
|
|||
|
Select this from the screen and hit 'printIt', and out comes the message.
|
|||
|
|
|||
|
From: seismo!decvax!ittvax!freb
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Smalltalk-80 */
|
|||
|
|
|||
|
merryChristmas: aStream
|
|||
|
"Prints 'Merry Christmas' on aStream 15 times."
|
|||
|
|
|||
|
15 timesRepeat:
|
|||
|
[aStream
|
|||
|
nextPutAll: 'Merry Christmas';
|
|||
|
cr
|
|||
|
]
|
|||
|
These languages courtesy of:
|
|||
|
Pavel Curtis, Cornell
|
|||
|
Mike Caplinger, Rice
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Snobol-3 */
|
|||
|
(Snobol-4?? What's that? We use Snobol-3 here.)
|
|||
|
|
|||
|
* S.D.S. TSS SNOBOL-3
|
|||
|
N = 1
|
|||
|
LOOP LOUT = 'MERRY CHRISTMAS'
|
|||
|
N = .LT(N,15) N + 1 /S(LOOP)F(.EXIT)
|
|||
|
|
|||
|
From: seismo!rochester!rocksvax!sunybcs!colonel
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Snobol 4 */
|
|||
|
|
|||
|
* Snobol 4 version. Not very elegant!
|
|||
|
*
|
|||
|
i = 1
|
|||
|
|
|||
|
a: output = 'Merry Christmas'
|
|||
|
i = i + 1
|
|||
|
le(i,15) :s(a)
|
|||
|
|
|||
|
-- chip elliott ...decvax!dartvax!chip
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* SPEED editor */
|
|||
|
|
|||
|
To print Merry Christmas 15 times using the SPEED editor from Data General
|
|||
|
(SPEED is a TECO-like editor, $ will represent an escape character, ^D will
|
|||
|
represent a control-D):
|
|||
|
|
|||
|
15<iMerry Christmas
|
|||
|
$>$#t$#k$h^D
|
|||
|
Michael Meissner
|
|||
|
Data General Corporation
|
|||
|
...{allegra, decvax!ittvax, rocky2}!datagen!mrm
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* SPL/3000 */
|
|||
|
|
|||
|
$Control Uslinit
|
|||
|
Begin
|
|||
|
|
|||
|
Byte Array
|
|||
|
Msg (0:14) := "Merry Christmas";
|
|||
|
|
|||
|
Integer
|
|||
|
I;
|
|||
|
|
|||
|
Intrinsic
|
|||
|
Print, Terminate;
|
|||
|
|
|||
|
For I := 1 UNTIL 15 Do
|
|||
|
Print (Msg, -15, 0); << 15 bytes, no CCTL >>
|
|||
|
|
|||
|
Terminate;
|
|||
|
|
|||
|
End.
|
|||
|
|
|||
|
From: seismo!harpo!ihnp4!clyde!akgua!emory!gatech!hope
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Stage 2 */
|
|||
|
|
|||
|
#$#$0 (+-*/)
|
|||
|
END#
|
|||
|
$F0#
|
|||
|
#
|
|||
|
$#
|
|||
|
$10$F7#
|
|||
|
Merry Christmas$F15#
|
|||
|
$F8#
|
|||
|
##
|
|||
|
15
|
|||
|
END
|
|||
|
|
|||
|
---Written and Contributed by Tom Almy, Tektronix, Inc.
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Stoic */
|
|||
|
15 0 DO "Merry Christmas&15&" MSG LOOP
|
|||
|
|
|||
|
---Written and Contributed by Tom Almy, Tektronix, Inc.
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* TECO */
|
|||
|
|
|||
|
15<^AMerry Christmas
|
|||
|
^A>$$
|
|||
|
|
|||
|
(where '$' is an Escape, and ^A is a control-A)
|
|||
|
|
|||
|
---Written and Contributed by Tom Almy, Tektronix, Inc.
|
|||
|
|
|||
|
=======================================
|
|||
|
|
|||
|
/* TECO */
|
|||
|
(Text Editor COrrector)
|
|||
|
|
|||
|
15<^AMerry Christmas
|
|||
|
^A>$$
|
|||
|
|
|||
|
note: ^A is a Control A
|
|||
|
$ is an escape character
|
|||
|
|
|||
|
And a Happy New Year,
|
|||
|
|
|||
|
|
|||
|
Rob Spray
|
|||
|
|
|||
|
Software Designer
|
|||
|
|
|||
|
US Mail: Computer*Thought Corporation
|
|||
|
1721 West Plano Parkway, Suite 125
|
|||
|
Plano TX 75075
|
|||
|
BellTel: 214-424-3511
|
|||
|
ARPAnet: ROB.CT@RAND-RELAY
|
|||
|
uucp: ... decvax!cornell!ctvax!rob
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* TECO */
|
|||
|
|
|||
|
:IGMerry Christmas
|
|||
|
$ !* Put string in Q-register G !
|
|||
|
15<:GG>$$ !* 15 Times, print it out !
|
|||
|
|
|||
|
The dollar signs represent ESCapes.
|
|||
|
|
|||
|
Merry Christmas!
|
|||
|
David Kaufman
|
|||
|
...decvax!yale-comix!kaufman
|
|||
|
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* TeX */
|
|||
|
(Knuth's text formatting language, assuming presence of Plain.TeX macros):
|
|||
|
|
|||
|
\def\mc#1{\ifnum #1>0 Merry Christmas\par
|
|||
|
{\count0=#1\advance\count0 by-1\mc\count0}\fi}
|
|||
|
\mc{15}
|
|||
|
|
|||
|
These languages courtesy of:
|
|||
|
Pavel Curtis, Cornell
|
|||
|
Mike Caplinger, Rice
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* TRAC */
|
|||
|
|
|||
|
#(ds,Merry-Christmas,(#(eq,arg,0,,(#(PS,Merry Christmas(
|
|||
|
))#(Merry-Christmas,#(su,arg,1))))))'
|
|||
|
#(ss,Merry-Christmas,arg)'
|
|||
|
#(Merry-Christmas,15)'
|
|||
|
|
|||
|
Note: "TRAC" is a trademark of Rockford Research, Inc.
|
|||
|
---Written and Contributed by Tom Almy, Tektronix, Inc.
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* TRAC */
|
|||
|
|
|||
|
#(ds,merry,(#(eq,count,0,,((Merry Christmas
|
|||
|
)#(cl,merry,#(su,count,1))))))'
|
|||
|
|
|||
|
#(ss,merry,count)'
|
|||
|
|
|||
|
#(cl,merry,15)'
|
|||
|
|
|||
|
The TRAC language is a text- and macro-processing language reminiscent
|
|||
|
of LISP. The first command defines a function, the second marks "count"
|
|||
|
as a dummy argument, the third calls the function. The printing is done
|
|||
|
by the command interpreter.
|
|||
|
|
|||
|
Andy Behrens
|
|||
|
decvax!dartvax!andyb
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* TROFF */
|
|||
|
|
|||
|
.de MC
|
|||
|
.nf
|
|||
|
.if \\$1>0 \{\
|
|||
|
Merry Christmas
|
|||
|
.nr x \\$1
|
|||
|
.nr x -1
|
|||
|
.MC \\nx \}
|
|||
|
..
|
|||
|
.MC 15
|
|||
|
|
|||
|
These languages courtesy of:
|
|||
|
Pavel Curtis, Cornell
|
|||
|
Mike Caplinger, Rice
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Turing */
|
|||
|
|
|||
|
------
|
|||
|
for : 1 .. 15
|
|||
|
put "Merry Christmas"
|
|||
|
end for
|
|||
|
------
|
|||
|
|
|||
|
Stephen Perelgut Computer Systems Research Group University of Toronto
|
|||
|
Usenet: {linus, ihnp4, allegra, decvax, floyd}!utcsrgv!perelgut
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* UL */
|
|||
|
|
|||
|
Here's one you probably wouldn't expect to get. It is Model204 User Language
|
|||
|
(UL is a query/programming language for the M204 database system that
|
|||
|
runs on IBM mainframes).
|
|||
|
|
|||
|
BEGIN
|
|||
|
%A IF FIXED DP 0
|
|||
|
1. FOR %A FROM 1 TO 15
|
|||
|
PRINT 'MERRY CHRISTMAS'
|
|||
|
2. END
|
|||
|
|
|||
|
That's it!
|
|||
|
Mickey Levine
|
|||
|
decvax!cca!mickey
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* UNIX shell script */
|
|||
|
|
|||
|
echo "Merry Christmas" | sed -e 's/./Merry Christmas%/g' | tr % '\012'
|
|||
|
|
|||
|
Ben Hyde Intermetrics Inc.
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Unix shell script (Bourne) */
|
|||
|
|
|||
|
COUNT=0
|
|||
|
while test $COUNT -lt 15
|
|||
|
do
|
|||
|
echo "Merry Christmas."
|
|||
|
COUNT=`expr $COUNT + 1`
|
|||
|
done
|
|||
|
|
|||
|
Ta!
|
|||
|
|
|||
|
Dave Ihnat
|
|||
|
ihuxx!ignatz
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* VALGOL */
|
|||
|
|
|||
|
I didn't look closely, but I didn't see a submission in VALGOL. Here is an
|
|||
|
attempt, but I can't vouch for its correctness, since I don't know any valley
|
|||
|
girls. After all, I live in Washington, not California, and we're a little
|
|||
|
behind the times up here.
|
|||
|
|
|||
|
Like, gag me with a Merry Christmas!
|
|||
|
No Way! Merry Christmas!
|
|||
|
Like, so totally Merry Christmas!
|
|||
|
Barf me out with a Merry Christmas!
|
|||
|
So gross! Merry Christmas!
|
|||
|
|
|||
|
|
|||
|
I realize this is only five times, not fifteen, but you can multiprocess in
|
|||
|
VALGOL. Just get three valley girls and execute the above on each one.
|
|||
|
|
|||
|
From: seismo!cornell!uw-beaver!ssc-vax!fluke!witters
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* VAX MACRO */
|
|||
|
(VMS flavour...snicker)
|
|||
|
|
|||
|
;
|
|||
|
text: .ascii "Merry Christmas" ; output text
|
|||
|
.byte 13,10 ; carriage control
|
|||
|
tlen = . - text ; text length
|
|||
|
tty: .ascid "TT:" ; logical name of current terminal
|
|||
|
chan: .blkw 1 ; storage for IO channel number
|
|||
|
|
|||
|
.entry xmas,^M<r10>
|
|||
|
$ASSIGN_S devnam=tty,chan=chan ;get channel to terminal
|
|||
|
movl #1,r10 ;initialize loop
|
|||
|
loop: $QIOW_S chan=chan,func=#IO$_WRITELBLK,- ;dump the message
|
|||
|
P1=text,P2=#tlen
|
|||
|
aobleq #15,r10,loop ;15 times
|
|||
|
ret
|
|||
|
.end xmas
|
|||
|
|
|||
|
From: seismo!decvax!microsof!ubc-vision!mprvaxa!tbray
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* Xerox Data Systems Metasymbol Assembler */
|
|||
|
|
|||
|
system sig9
|
|||
|
system bpm
|
|||
|
csect 1
|
|||
|
message text 'Merry Christmas'
|
|||
|
ref m:lo
|
|||
|
start equ,0 $
|
|||
|
li,7 15
|
|||
|
loop equ,0 $
|
|||
|
m:write m:lo,(buf,message),(size,15)
|
|||
|
bdr,7 loop
|
|||
|
m:exit
|
|||
|
end start
|
|||
|
|
|||
|
|
|||
|
Jon Bertoni
|
|||
|
|
|||
|
==========================================================================
|
|||
|
|
|||
|
/* XPL version. (Defined in book "A Compiler Generator".) */
|
|||
|
|
|||
|
dcl i fixed;
|
|||
|
|
|||
|
do i = 1 to 15;
|
|||
|
|
|||
|
output = 'Merry Christmas';
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
-- chip elliott ...decvax!dartvax!chip
|
|||
|
|
|||
|
==========================================================================
|
|||
|
--
|
|||
|
|
|||
|
Don Davis
|
|||
|
JHU/APL
|
|||
|
...decvax!harpo!seismo!umcp-cs!aplvax!ded
|
|||
|
...rlgvax!cvl!umcp-cs!aplvax!ded
|
|||
|
|
|||
|
|
|||
|
Article 257 of comp.sources.misc:
|
|||
|
Path: puukko!santra!tut!enea!mcvax!uunet!lll-winken!lll-lcc!ames!necntc!ncoast!allbery
|
|||
|
From: peter@sugar.UUCP (Peter da Silva)
|
|||
|
Newsgroups: comp.sources.misc
|
|||
|
Subject: v03i080: Re: v03i076: Just for fun (something which once appeared on the net)
|
|||
|
Message-ID: <8807130507.AA26710@uunet.UU.NET>
|
|||
|
Date: 13 Jul 88 05:07:49 GMT
|
|||
|
Sender: allbery@ncoast.UUCP
|
|||
|
Reply-To: peter@sugar.UUCP (Peter da Silva)
|
|||
|
Lines: 34
|
|||
|
Approved: allbery@ncoast.UUCP
|
|||
|
|
|||
|
Posting-number: Volume 3, Issue 80
|
|||
|
Submitted-by: "Peter da Silva" <peter@sugar.UUCP>
|
|||
|
Archive-name: more-xmas
|
|||
|
|
|||
|
[Introducing the major motion picture: THE CHRISTMAS THAT WOULDN'T DIE! Now
|
|||
|
showing at theaters near you!!! ;-) ++bsa]
|
|||
|
|
|||
|
Ratfor (from the book, with the DEC F4P Fortran):
|
|||
|
|
|||
|
do(i=1,15) type *, 'Merry Christmas'
|
|||
|
end
|
|||
|
|
|||
|
Ratforth (AKA Fifth, a language I hacked up to make Forth less ugly):
|
|||
|
|
|||
|
define christmas {
|
|||
|
do(15,0) {
|
|||
|
type(count("Merry Christmas"));
|
|||
|
CR;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
This produces, by the way:
|
|||
|
|
|||
|
: christmas 15 0 do " Merry Christmas" count type CR ;
|
|||
|
|
|||
|
AREXX:
|
|||
|
|
|||
|
/* Say Merry Christmas 15 times */
|
|||
|
do i=1 to 15
|
|||
|
say 'Merry Christmas'
|
|||
|
end i
|
|||
|
---
|
|||
|
-- `-_-' Peter (have you hugged your wolf today?) da Silva.
|
|||
|
-- U Mail to ...!uunet!sugar!peter, flames to alt.dev.null.
|
|||
|
-- "Running OS/2 on a '386 is like pulling your camper with an Indy car"
|
|||
|
|
|||
|
|
|||
|
|