« first day (199 days earlier)      last day (1197 days later) » 

1:55 AM
All the functions implemented so far follow the formal descriptions in softwarepreservation.org/projects/apl/Books/…
"A Generalization of APL"
 
 
4 hours later…
5:55 AM
Got simple cases of encode working.
`$ !.
./olmec
2 2 2⊤5
1 0 1
3 4 2⊤5
0 2 1
¯2¯2¯2⊤5
-1 -1 -1
`
 
 
15 hours later…
8:49 PM
@ETHproductions wanna continue in here?
 
@MartinBüttner Sure.
Yeah, I see what you mean. I think the rotations could make it a lot more interesting.
 
what other plans do you have for the language?
 
Not much, really, except to figure out how to use it more efficiently.
What scheme would you suggest for the rotation commands?
BTW, I'm using A-Z and symbols as commands, a-z push their respective char codes.
 
I'd probably not do that any more. Fission did that, and the author doesn't really like it any more, so he's removing it for Fission 2.
I also did that for Hexagony, but I think in the future I'd rather at least leave myself the possibility for new functionality.
 
Oh, hmm.
 
8:57 PM
for the rotation... I guess you've got two options
 
@MartinBüttner I guess that would make Hello, World! and FizzBuzz longer, but not many other programs.
 
a) you can only do rotations that are orthogonal to the current plane. in that case you could use Labyrinths semantics (><v^, rotate a row or column depending on some current value, relative to the IP... and in your case the entire plane attached to it). b) you could go with rubik's cube notation like UDLRFB or whatever it is, and allow any rotation from anywhere. would have to clarify if these are global or relative to the IP
@ETHproductions there are better solutions for literals. for a start you could have ' switch to "literal mode" for one tick, such that the next character in movement direction is pushed.
you can also have ><>/Befunge/Rail style strings, i.e. " toggles literal mode
 
@MartinBüttner Yes, I've been planning to do # to grab the next char code, but ' and " sound much better.
 
you also said "push". so the memory model is going to be a stack? several? anything else?
 
@MartinBüttner I was thinking about doing something really weird, like a stack where you have to manually move some pointer to between two items to perform binary operations, but in the end I think a plain stack might be the best option.
@MartinBüttner If the language only has integer-type literals, how will " work?
 
9:03 PM
I have a really neat idea for a cube-themed memory model, but it might be better combining that with a less messed up program layout (also, I want to use a version of it with different geometry for a language I do want to implement at some point...)
@ETHproductions it pushes the character codes
 
Like "abc" would push 'c, then 'b, then 'a?
 
either that, or just 'a, 'b, 'c and you'll either have to reverse literals in the source, or reverse the stack in the program
(that's what ><> and Befunge do. some languages also push it in reverse for convenience)
 
Sounds good to me.
@MartinBüttner I think I like b) better. It'd take 12 commands instead of 4 (I think UDLRFBudlrfb would work), but it'll offer control over not only what side the pointer is on, what instruction it'll run over next.
 
yeah sounds good
 
9:46 PM
@Martin How would you suggest literal quotation marks be marked inside in strings?
 
either not at all, or allow for escapes with \ (i.e. \ in literal mode is skipped but pushes the next character)
 
I kinda like the \ idea because it would make for interesting paths outside the string.
 
you could also just reuse ' for that purpose
(such that it works the same inside and outside of literal mode)
 
Ah, yes
 

« first day (199 days earlier)      last day (1197 days later) »