Execute HQ9+/Ursala: Difference between revisions
(created) |
m (Fixed syntax highlighting.) |
||
(5 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{collection|RCHQ9+}}{{implementation|HQ9+}} |
{{collection|RCHQ9+}}{{implementation|HQ9+}} |
||
In this [[Ursala]] program, there are the following constraints: |
|||
* Unrecognized operators or a missing input file cause diagnostic messages. |
|||
* Since the accumulator is unreadable and has no operational consequences, its value isn't stored. |
|||
* A line break at the end of the file, if any, is ignored. |
|||
<syntaxhighlight lang="ursala">#import std |
|||
#import nat |
|||
quantity = ~&iNC+ --' of beer'+ ~&?( |
|||
1?=/'1 bottle'! --' bottles'+ ~&h+ %nP, |
|||
'no more bottles'!) |
|||
verse = |
|||
^(successor,~&); ("s","n"). -[ |
|||
-[quantity "s"]- on the wall, -[quantity "s"]-, |
|||
Take one down and pass it around, -[quantity "n"]- on the wall.]- |
|||
refrain "n" = |
|||
-[ |
|||
No more bottles of beer on the wall, -[quantity 0]-. |
|||
Go to the store and buy some more, -[quantity "n"]- on the wall.]- |
|||
whole_song "n" = ~&ittt2BSSL (verse*x iota "n")--<refrain "n"> |
|||
#executable ('parameterized','') |
|||
rchq = |
|||
<.file$[contents: --<''>]>+ -+ |
|||
*= case~&r ( |
|||
{`h: -[Hello, World!]-!,`9: whole_song99!,`+: <>!,`q: ~&l}, |
|||
% <.'unrecognized operator: '--+ ~&rNC>), |
|||
~command.files; ~&itZB?/~&h.contents.&iziyQBLD <'usage: rchq [file]'>!%+-</syntaxhighlight> |
Latest revision as of 10:26, 1 September 2022
In this Ursala program, there are the following constraints:
- Unrecognized operators or a missing input file cause diagnostic messages.
- Since the accumulator is unreadable and has no operational consequences, its value isn't stored.
- A line break at the end of the file, if any, is ignored.
Execute HQ9+/Ursala is part of RCHQ9+. You may find other members of RCHQ9+ at Category:RCHQ9+.
Execute HQ9+/Ursala is an implementation of HQ9+.
Other implementations of HQ9+.
#import std
#import nat
quantity = ~&iNC+ --' of beer'+ ~&?(
1?=/'1 bottle'! --' bottles'+ ~&h+ %nP,
'no more bottles'!)
verse =
^(successor,~&); ("s","n"). -[
-[quantity "s"]- on the wall, -[quantity "s"]-,
Take one down and pass it around, -[quantity "n"]- on the wall.]-
refrain "n" =
-[
No more bottles of beer on the wall, -[quantity 0]-.
Go to the store and buy some more, -[quantity "n"]- on the wall.]-
whole_song "n" = ~&ittt2BSSL (verse*x iota "n")--<refrain "n">
#executable ('parameterized','')
rchq =
<.file$[contents: --<''>]>+ -+
*= case~&r (
{`h: -[Hello, World!]-!,`9: whole_song99!,`+: <>!,`q: ~&l},
% <.'unrecognized operator: '--+ ~&rNC>),
~command.files; ~&itZB?/~&h.contents.&iziyQBLD <'usage: rchq [file]'>!%+-