last day (661 days later) » 

8:55 PM
Wow, @ThomasKwa, you found this rather quickly. :P
I'll be transcribing some notes soon from my little notebook.
 
I see you have chosen your first words.
4
 
I was worried you'd get the first words. :P
 
I deliberated over the options—to reference a PPCG meme, or say something grand, or maybe even some self-reference—but decided it should be up to you, the room creator, to decide the tone of the room for all future occupants.
 
Haha. Well, a (debatedly) poor start will soon be remedied. :P
Goals for PyAcidic (draft):
- get rid of fluff where possible
- make it a lot easier to use common patterns (like nested loops)
- when feasible, make it readable/understandable
- flexibility with sensibility
- practicality-oriented (not simple/elegant like Lisp nor overly complex like C++ or Perl)
\chunk(\N,7) should be smart enough to know the result is an infinite list.
\cycle(\cycle(3),\cycle(7)) is an infinite list of infinite lists of 3s and 7s. Need a way to loop through these.
^ is discussed a little starting here:
in The Nineteenth Byte, 2 days ago, by El'endia Starman
On a completely different topic, I'd like some thoughts on this: let's say I have a function \cycle that...well...turns the input into a cycle. So \cycle([0,1]) becomes [0,1,0,1,0,1,...] and likewise \cycle([2,3]) becomes [2,3,2,3,2,3,...], both of which are infinite lists. The question: what should \cycle([ \cycle([0,1]), \cycle([2,3]) ]) be? Or, alternatively, if you loop through it with a for loop and print each item, what should the output be?
\N is [1,2,3,...]; \cycle(\N) is [(1,1),(1,2),(2,1),(1,3),(2,2),(3,1),...]
Infinite lists should have a period attribute, which may be infinity or unknown.
Elaboration: a known period helps with stuff like smart printing. \print(\cycle([0,1])) should be something like [0,1,0,1,...], and \print(\interleave( \cycle([0,1]), \cycle([2,3]) )) should produce something like [0,2,1,3,0,2,1,3,...].
Idea: looping over 3x3 subsets of a grid is common. Can be improved by reducing the number of "requests" to the grid. Depending on the desired action, [a further improvement is possible,] like summing up each subset because the running total can be adjusted on the fly. Requires: commutativity, associativity, inverse, no weighting.
 
9:49 PM
In any case, provide \gridSubsets and options of toroidal (default: false) and strict (default: false; strict meaning that subsets are entirely contained in the grid).
Anything ⊕ (any operator) function = new function
\pairwise( makes any op ⊕ into one that takes two sequences and returns another one that consists of a0 ⊕ b0, a1 ⊕ b1, etc.
fundamental types: (draft)
- Number: int, float, complex, ...
- Sequence: string, list, cycle, ...
- Function
sequences can be infinite
\strict( - errors on mismatched-length inputs
\loose( does nothing with overflow
\short(, \long( - adjusts whether the length of the output depends on the shortest or longest input
Reasoning: it irks me that Python has the wonderfully useful tool zip that always truncates iterables longer than the shortest one, so you have to do import itertools to get itertools.ziplongest.
"5"+5 should throw ambiguity warning and return 10
\concat("5",5) => "55"
\copy and \deepcopy(/\shallowcopy(
Reasoning: likewise, how many times has shallow copying/copying by reference been a problem? Solution? import copy ... copy.deepcopy. Same issue.
\nestedLoop(*iterables) does a Cartesian product on the iterables
Justification: nested loops with no processing in between are quite common. It'd be nice to one-liner them (in an relatively clear way, of course).
Okay, that's the end of the transcribed notes.
 
10:26 PM
I actually had a little function written on a scrap of paper that seems to have been recycled. Sadface.
But noteworthy aspects:
- variables can have their type specified with type:variable notation. I.e., func:foo(int:a, str:b){ ... }
Given that I plan to implement something like Python's dynamic/duck typing as the default, these specifications are useful for enforcing preconditions. For instance, func:fibonacci(int:n) means that n must be an integer, otherwise an error is thrown.
- \require(n > 0) will essentially be like assert in Java. Throws an error if the condition is not met. I'd like to make this a little more flexible, but conditions will definitely be included.
- \return(n) for returning. I really want to figure out a better way to do this. having to type out return every time seems like it might be a bit of fluff that could be disposed of. Maybe not.
Another thing I remember from that scrap of paper: it'd be cool to be able to do this:
   0 1 ?
0 1 ?
   0 1 1 ?
0 1 1 ?
   0 1 1 2 ?
0 1 1 2 ?
   0 1 1 2 3 ?
0 1 1 2 3 ?
Essentially, build a sequence by adding differences from a sequence that is itself.
Such a function would instantly make all Fibonacci/Lucas-type sequences easy without even needing to make a specific command for those.
But beyond that, I think the ability to self-reference could make for some very powerful (and very abuse-able) operations.
Incidentally, I'm considering changing the language name to PyTeX. The "words" will be very TeX-like and I'll be borrowing a lot of stuff from Python too...
in The Nineteenth Byte, 3 hours ago, by El'endia Starman
Okay, thoughts and ideas requested: let's say I implement a \track() command that "watches" a sequence and does something when something happens. As a specific example, let's say I have a sequence that is the number of factors of natural numbers, and whenever there's a new maximum, I want to print the corresponding number. How should this be written? What would be clear notation?
^ I think this "tracking" idea could be a new/unusual form of flow control, potentially very useful.
 
10:47 PM
in The Nineteenth Byte, 28 secs ago, by Quill
a generator, maybe
9 mins ago, by El'endia Starman
Essentially, build a sequence by adding differences from a sequence that is itself.
sounds like a generator
 
Yes, generators will underlie a lot of this language's features.
I'm asking about notation, though.
 
-_-
not helpful =_=
 
well, if your power went out or something...
 
10:51 PM
javascript has their generator notation like function*
versus a normal notation of function
 
hmm
Notation in general is more TeX-like, though.
But that's kinda beside the point.
 
func*:fibonacci(int:n) gen:fibonacci(int:n)
 
Why is it called Pyacidic?
 
If we're talking about the Fibonacci-producing thing, then it'd be something like x = [0,1]+\addDiffs(x,[0,1]+x). I don't know if that's clear notation.
 
(not frankly appetizing)
 
10:53 PM
@Calvin'sHobbies i'm guessiing cuz of p-adic orders and stuff
 
sounds super l337
or like an IRC username from 2003
 
in The Nineteenth Byte, Nov 30 '15 at 8:02, by El'endia Starman
Well, that's what it should be if you want it to match my PY-ACIDIC code.
IIRC, it's a pun on TI-BASIC (because of tokenization) and Python.
 
Plainly
Yet
Another
Confusing
Incompletable
Darn
Indie
Codebase
 
I do plan on having an encoding/compiled version (perhaps called PyAc) where every command becomes a byte or two for purposes.
For \track(), I still don't really know how I'm going to go about doing that.
 
Parents
Yelling
At
Children
In
Deadly
Indecipherable
Cries
@El'endiaStarman listeners?
 
10:58 PM
It depends on these things: sequence(s), trigger(s), and action(s).
@Quill I'm not talking implementation detail at this point.
> - when feasible, make it readable/understandable
Oh hai @ThomasKwa. Lots of goodies up at the top. :P
 
So... what exactly is PyAcidic? :/
 
^
 
It's......somewhat hard to describe.
In part because I'm not 100% sure yet.
 
This sounds an awful like PHP
 
How so?
 
11:04 PM
It's hard to describe ¯\_(ツ)_/¯
 
bad dum tss
 
Well, I do intend for it to become a language I use.
 
11:05 PM
It will be general purpose.
 
Based off of python?
 
Yes and no.
 
@El'endiaStarman so there's where PHP and PyAcidic differ, then?
3
 
I'll be taking some of Python's stuff, like and and or, probably, and in too.
Duck typing too.
 
make sure to take chained comparisons
 
11:06 PM
So it's an actual language, not stack-based or anything?
 
But also, one thing I really like about Blitz 2D/3D, the first language I really learned, is that it's so easy to do 2D and 3D stuff. In Python? Not so much.
 
your syntax looks like lisp
 
@CᴏɴᴏʀO'Bʀɪᴇɴ Correct. I initially thought about making it prefix notation like Pyth, but then my desire to make it really usable won out.
It makes more sense to have a+b than +ab or \add(a,b).
@Quill Hmm. I don't really like Lisp all that much, probably in part because I haven't used it very much. In particular, I dislike how many parentheses there are.
And yet...
I am considering figuring out a good way to let you close all parens/brackets/braces with a single character.
@Maltysen Like?
 
@El'endiaStarman like a semicolon?
 
@Quill Precisely.
 
11:09 PM
@El'endiaStarman a<b<c actually works like expected
 
@Maltysen I am absolutely doing that.
@Quill The question I have is basically "what if I only want to close the last four pairs?"
Still mulling over that.
 
#n / ;3 or a similar character
 
So like ;#4?
 
something like that
 
yeah, perhaps
 
11:12 PM
or even a carriage return if you want to get funky
 
About your track idea: I'm considering dropsort-by for mine :)
 
I have seriously considered using carriage returns. Problem comes in when you want to indent code like this:
 
@El'endiaStarman Unless you'll be heavily overloading everything, I'd be in favor of prefix.
 
func:collatzSteps(n){
    \return(\numLoops(
        \while(\is(n,1)){
            \ternary(\modulo(n,2),
                     \divSelf(n,2),
                     \incSelf(\mulSelf(n,3))
                    )
        }
    ))
}
 
11:13 PM
@ThomasKwa I said postfix? Shoot. Meant prefix. Edited.
 
@El'endiaStarman Jolf is useful o^o
 
@El'endiaStarman double carriage return
or maybe even like Python's required indentation
 
@Sp3000 I like the idea of dropsort-by in general. That'll probably become its own command.
@CᴏɴᴏʀO'Bʀɪᴇɴ PHP is useful.
 
PyAcidic looks a lot like (La)TeX...
@El'endiaStarman It's a hose.
 
33 mins ago, by El'endia Starman
Incidentally, I'm considering changing the language name to PyTeX. The "words" will be very TeX-like and I'll be borrowing a lot of stuff from Python too...
Or maybe Pytek.
 
11:17 PM
:) (I'm crashing the party because we seem to be making slightly similar languages again)
 
Pytex > PyTeX
 
PyKek
 
PyTeX sounds like its an official deriv.
 
@Quill Oooh, I like that idea. Maybe carriage return + ; + carriage return?
 
I think anything except prefix, Jelly-like tacit, or stack-based with implicit input like ...Adnan's langauge or MATL, I forget which... will be at a disadvantage against the existing languages.
 
11:17 PM
@CᴏɴᴏʀO'Bʀɪᴇɴ Hence why I was a bit iffy about it.
 
@El'endiaStarman So go with Pytek! :D
 
or maybe even an empty loop
{}
 
I do like that idea. Pytek. Easy to say, easy to type...
 
@ThomasKwa Expand upon "disadvantage against the existing languages"?
 
@Quill Risks visual clutter.
 
11:18 PM
@El'endiaStarman ...sounds like Hi-tech..
@El'endiaStarman IMO (La)TeX already looks cluttered.
 
@CᴏɴᴏʀO'Bʀɪᴇɴ Aye, and that's worrying me somewhat.
 
@El'endiaStarman Are the `\`s necessary?
 
On the other hand, programs may become vastly shorter, so that might not be so problematic.
@CᴏɴᴏʀO'Bʀɪᴇɴ I figure that's the indicator of a command.
 
@CᴏɴᴏʀO'Bʀɪᴇɴ Pyth is already at a disadvantage against a language like Jelly, because it needs bytes to express lambdas and such.
 
11:21 PM
@ThomasKwa Oh, byte-wise disadvantage.
Yeah, implicit stuff helps a lot. If you need to have explicit input, well, then, you're already at a disadvantage.
 
That said, my goals for this language have evolved to the point that while I do still plan on making a heavily compressed "encoding", the golfiness should come from the sheer number of usable patterns.
 
Therefore, @El'endiaStarman, you need to have a golf mode for PyAcidic.
 
11:58 PM
P - PLUG-IN
Y - YOUTUBE
A - APPLICATION
C - COMPUTER PROGRAM
I - INTERFACE
D - DOMAIN NAME
I - INTERNET
C - CAPTCHA
 

  last day (661 days later) »