Talk:Kelxquoia

From Esolang
Jump to navigation Jump to search

You should rename this to Befunge-111. —ehird 17:01, 24 December 2010 (UTC)

Your request has been processed and evaluated, and has been declined. Have a nice day --Chris Pressey 21:36, 9 January 2011 (UTC)

I/O Extensions

I propose the following ideas for input and output extensions:

  • The @ command inputs a character, pops a row, appends the character to the row, and pushes the new row. If the input is a newline, it won't append anything and the pointer will turn right. If the input is a carriage return, it won't append anything and the pointer will turn left. Any other characters can go into the code literally as long as you look at the code on a byte-by-byte basis. (If lines are ended by one of \n, \r, \r\n, it's a bit hard, but not impossible, to include a null, form feed, control character, etc. into the code to check for it. By handling the newline cases, Kelxquoia could do binary I/O by literally including other characters in the code, which does not break the specification.)
  • If there is the character % to the right of the current command, the command does nothing and outputs the current character instead. Of course this also destroys the character.
  • The C command outputs a carriage return.
  • The L command outputs a linefeed.

I know conditional turning in Kelxquoia isn't really great for encouraging the point of the language, but there's not really any other way. Using some sort of escape won't work because Kelxquoia can't detect the length of a row, and so adding an unpredictable row length could cause errors when rewriting.

Here is the Hello world! program under these rules (this halts by replacing the entire grid):

$Hello world!+-?*+-X*/
 %%%%%%%%%%%%      '

BoundedBeans (talk) 00:28, 4 July 2023 (UTC)