Talk:Witeal

From Esolang
Jump to navigation Jump to search

Issues

  1. The number of cells is limited to 1000, is this an interpreter limitation? If not it breaks TC.
  2. The descriptions of the '<' and '>' commands are not clear, however, I assume that the commands "<>+-" are identical to BF.
  3. The size of a cell is not specified; this is more important than normal because based on the examples it does not appear to use ASCII.
  4. It does not use the ASCII character set, the set needs to be defined; especially digits.
  5. The "@","|" and "_" commands are used in the examples. Do they do anything?
  6. The "[", "]", "&", "/" and "." commands appear to be interrelated. The "/" may be loading a value into some sort of register that the other commands use. The "." would appear to be a "break" style label with the "[" and "]" commands being just labels, not part of a while loop. If so the TC claim is unproven.
  7. I don't see how "/" and "&" trigger a character print.
  8. There appears to be something odd about the sequence of instructions; is the "[something]" construct like the looping constructs in the unix DC command? --(this comment by Rdebath at 07:09, 20 June 2014 UTC; please sign your comments with ~~~~)
I looked examples, and it seems that:
  1. The program must be surrounded by "@" and "_".
  2. "[" and "]" loop while a condition is true. If the code inside the loop raises an error (cell pointer outside the range 0-999), program jumps to the next "."-label.
  3. At the end of a loop, there is a condition: "&co" or "&/". "c" is a number represented by a sequence of "+" or "-" characters. "o" is an operator "<" (less than), ">" (greater than) or "_" (equals). "&/" means "if the current cell is not 0". It is not clear to me what "&" does when not inside a loop.
  4. "/" inputs a value if cell is "empty" (0) and outputs it otherwise.
  5. Characters 1-26 are A-Z, -1 is newline.
GermanyBoy (talk) 21:15, 20 June 2014 (UTC)
Or maybe the program can be enclosed in "@" and "|", just a mistake or something esoteric?
And the "compares two strings" example has embedded "_" characters, what's with that?
It looks like "[]" without a condition is an unconditional loop, but "[+]." isn't; it seems that "adding" past the maximum is an error but "subtracting" past zero is not. Would the "add" happen even if it is an error, giving zero as a space; otherwise -1 is both space and newline.
There are no examples of "&" outside loops ==> not allowed.
But inside a loop I think it has to be evaluated at the start of a loop, even though lexically it's at the end...
Except sometimes, it needs to be evaluated in the middle of the loop (where it appears lexically).
And the hello world printing loop seems to be conditioned on the cell offset, not the cell contents.
Basically, I could write some sort of interpreter; but it ain't gonna run the examples, not even approximately.
Rdebath (talk) 07:44, 21 June 2014 (UTC)
The string comparison program has "&" commands outside a loop, for example "&++++++++_", "is equal to H". I think that the condition command "&" raises an error if it evaluates to false and jumps to the next "."-label. GermanyBoy (talk) 14:15, 21 June 2014 (UTC)
Okaaay, I miscounted brackets. But that does fit the exception processing ... oh ... The *next* dot, I suppose that means it'll jump into loops too. And some people wonder why "ON ERROR GOTO" is a bad idea! Anyway thanks for the help, but I think I'll skip this one. I'd have to re-invent it and it's starting to look ugly. Rdebath (talk) 17:08, 21 June 2014 (UTC)