99 bottles of beer: Difference between revisions
fix syntax highlighting
Not a robot (talk | contribs) (Add ABC) |
(fix syntax highlighting) |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 66:
=={{header|8th}}==
<syntaxhighlight lang="
\ 99 bottles of beer on the wall:
[
"no more bottles" ,
( dup . " bottles" )
] var, bottles
: .bottles
: .beer
.bottles . " of beer" . ;
: .wall
.beer " on the wall" . ;
: .take
" Take one down and pass it around" . ;
: beers
.wall ", " . .beer '; putc cr
n:1- 0 max .take ", " .
.wall '. putc cr drop ;
' beers 1 99 loop-
bye
</syntaxhighlight>
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
Line 2,024 ⟶ 2,031:
WriteLine("Go to the store to buy some more, 99 bottles of beer on the wall...");
}</syntaxhighlight>
=={{header|C/vFP16}}==
<syntaxhighlight
lang="cpp">#pragma SCH_64_16_IFP
#import <jobsched.c>
__attr(@canschedule)
volatile constricts async UVOID <__INVAR const T>base_000000 __PCON(
impure VFCTX_t^ ct_base,
impure MCHR_t^ sched_arg,
__LVAR <const T>XVF_fntype_t^ f,
<out VF_QSWitch_t>XVF_fn_t^ switchctx
) __ARGFILL {
VF_Xsched_ILock(ct_base, $->sched);
captured __VFObj <>VF_KeDbg^ ki = VF_Xg_KeDbg_Instance();
captured deferred <__VF_T_Auto>__VF_Auto^ vfke = copyof VF_KeDbg_GetRstream<MCHR_t^>(captures ki);
VF_Gsched_SOBFree(sched_arg);
VF_Gsched_Alloc_U16(65535);
VF_Msched_MChr_lim(1496);
VF_Osched_Begin();
VF_Fsched_Add2(%beer_000099);
VF_Xsched_IUnlock(ct_base, $->sched);
$switchctx(IMPURE_CTX, %beer_000099(%vfke));
}
__attr(@eUsesIo)
impure constricts UVOID synchronized beer_000099(
impure __noinline <MCHR_t^>RIGHTSTREAM_t^ outrs
) __NFILL {
pure UVOID^ uvid = __attr(@purify) $UVOID.;
while ( 99 > ((volatile NUM_t)^(NUM_t^)(uvid))++ ) {
VF_STM_Out_NUM((NUM_t^)uvid);
VF_STM_Out_x(__Dynamic C"bottles on the wall.\nPut one down, pass it around\n");
}
return $__;
}
</syntaxhighlight>
=={{header|C++}}==
Line 9,484 ⟶ 9,534:
=={{header|Oxygene}}==
<syntaxhighlight lang="
namespace ConsoleApplication2;
Line 9,518 ⟶ 9,568:
end;
end.
</syntaxhighlight>
This version uses top-level declarations, string interpolation along with more idiomatic Object Pascal syntax vs C#.Net syntax:
<syntaxhighlight lang="pascal">
namespace _99_beers;
method bottles(number: Integer): String;
begin
if (number = 1) then
Result := "bottle"
else
Result := "bottles";
end;
begin
for n: Integer := 99 downto 1 do
begin
writeLn($"{n} {bottles(n)} of beer on the wall,");
writeLn($"{n} {bottles(n)} of beer,");
writeLn($"Take one down, and pass it around,");
writeLn($"{n-1} {bottles(n-1)} of beer on the wall.");
writeLn();
end;
readLn;
end.
</syntaxhighlight>
Line 9,578 ⟶ 9,655:
=={{header|Pascal}}==
See [[99 Bottles of Beer/Pascal]]
=={{header|PascalABC.NET}}==
<syntaxhighlight lang="pascal">
begin
for var i:=99 to 1 step -1 do
begin
Println(i,'bottles of beer on the wall');
Println(i,'bottles of beer');
Println('Take one down, pass it around');
Println(i-1,'bottles of beer on the wall');
Println
end;
end.
</syntaxhighlight>
This version demonstrates uses of 'writeLn' vs 'Println' as well as string interpolation:
<syntaxhighlight lang="pascal">
begin
for var i:=99 to 1 step -1 do
begin
writeLn($'{i} bottles of beer on the wall');
writeLn($'{i} bottles of beer');
writeLn($'Take one down, pass it around');
writeLn($'{i-1}bottles of beer on the wall');
writeLn
end;
end.
</syntaxhighlight>
=={{header|Perl}}==
Line 13,708 ⟶ 13,815:
Fails the task definition for more song, includes the no beer verse.
<syntaxhighlight lang="
module main
|