If you bring forth allegations after everyone else has brought forth theirs, are you a later allegator?
Notices by Don Romano 🍹 (thj@mastodon.cloud), page 3
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Thursday, 10-Oct-2019 18:16:31 EDT Don Romano 🍹
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Thursday, 10-Oct-2019 18:10:16 EDT Don Romano 🍹
It sounds like it would be really difficult to implement, right? Only sort of.
It’s basically a bit like forking a process multiple times right before a return statement, and returning different values for every fork.
Probably easier to implement in an interpreter.
It looks like I’ll need to change the evaluator into a loop to pull it off though. It’s currently a recursive function, because that was the fastest thing to implement.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Thursday, 10-Oct-2019 18:03:07 EDT Don Romano 🍹
So, I started implementing my weird Lisp dialect with functions that can return several times.
It sounds like generators or observables, but it’s actually more like the many-worlds interpretation of quantum mechanics.
When a function returns multiple times, the caller branches into alternate timelines.
If a collapse of the wave function is desired, you would naturally use a “collapse” expression for that.
Not sure what it’s good for yet, but I think it may offer some interesting powers.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Thursday, 10-Oct-2019 12:02:05 EDT Don Romano 🍹
It looks like there are a number of different possible ways of encoding lists of items where items may share full or partial prefixes.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Thursday, 10-Oct-2019 11:54:25 EDT Don Romano 🍹
When I say I’ve been extremely prone to getting lost in details lately, I do mean extremely prone. I just spent an entire day trying to work out the semantics and algorithm for flattening a single tree structure into a list.
The tree contains tokens stored by prefix, and I had to figure out things like “When a list item contains another list, does that mean we are extending the current prefix with a new token, or are we generating an output token with the current prefix?”
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Thursday, 10-Oct-2019 11:45:42 EDT Don Romano 🍹
The ADHD medications give me patience, but I’ve noticed that I’m extremely prone to getting lost in details and thinking in circles when I take them. Maybe I’ve always been, and I just wasn’t patient enough to keep trying for long enough to notice.
By pure coincidence, my side project and my work assignment both involve list processing, which is turning out to be surprisingly hard, when some of those lists are nested and you need to write recursive functions.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Thursday, 10-Oct-2019 02:33:23 EDT Don Romano 🍹
They do say that exposure breeds tolerance, but to be honest, that’s not universal.
Exposing myself to the constant throat cleaning and loogie hawking of the guy that sits behind me at work does not make me more tolerant of it. It just drives me insane.
As of today, that won’t be a problem. I swapped seats with someone at work. Here’s to hoping that nobody in that room has any annoying habits.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Thursday, 10-Oct-2019 02:27:38 EDT Don Romano 🍹
If I’m going to find a physical hobby, it needs to be one where I’m constantly having to figure out seemingly impossible problems.
Few physical activities demand that much thinking. Most ball sports only require quick thinking and what I want is to think hard, but not on a deadline.
Rock climbing would probably be challenging enough, but here’s the next problem: I’m neurotic. I don’t need more fear in my life.
Except maybe it could help me feel less fear...
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Thursday, 10-Oct-2019 02:20:51 EDT Don Romano 🍹
I should take up some kind of physical activity. I have tried walking and going to the gym, but they won’t do.
I can’t use my body while not also using my brain. It needs to be engaged in what I’m doing, or I won’t enjoy it, and it’s a high maintenance son of a bitch.
When projects at work aren’t challenging enough, I make them more challenging, but the problem is that this also slows me down. I’m thinking much harder than the task actually demands, because my brain demands to think hard.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Wednesday, 09-Oct-2019 12:05:35 EDT Don Romano 🍹
I keep looking for interesting places to eat and shop in Oslo along my route home from work. Everything is either junk or hilariously overpriced. I found a place that sells artisanal crackers for 10 dollars per box. A dinner at a restaurant along the route costs over 20 dollars unless it’s a junk food place. I always just end up eating at home.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Wednesday, 09-Oct-2019 04:38:34 EDT Don Romano 🍹
@FiXato Yes, it’s not unheard of at all, so it’s a bit strange that we have modern languages such as Java and C# that still require it.
They most certainly didn’t take a closer look at mathematics, where this is common practice.
I have taken to using this notation when I write equations:
sin x
atan2 x, y
(atan2 x, y) + sin x
The parens aren’t a part of the function invocation. They just serve the usual purpose of delimiting a subexpression.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Wednesday, 09-Oct-2019 02:36:57 EDT Don Romano 🍹
Schrödinger’s language:
particle -> function
interaction -> call
outcome -> return/yield valueIf a particle interaction occurs once, yet has several outcomes, what is the right interpretation?
Copenhagen: Random outcome.
Everett: Alternate timelines.
What if Everett was the default interpretation, and there was a “collapse” function for Copenhagen, and a “many” function to put all the outcomes in a list?
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Tuesday, 08-Oct-2019 16:57:29 EDT Don Romano 🍹
If a function can take multiple arguments, I don’t see why it couldn’t return multiple results too.
The workaround for that in current languages is to return an array or generator (iterator).
Suppose you instead had a kind of inverted recursion where, if the caller only consumes one result and there are 10 results, the caller is invoked 9 times extra, and the 10 results are passed to the caller’s caller. If the result list isn’t reduced anywhere, 10 results are shown in the REPL.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Tuesday, 08-Oct-2019 16:43:07 EDT Don Romano 🍹
The only reason to require parens for functions and function calls is for readability, but think of BASIC. It did fine without all the delimiters, and so did Pascal, though Pascal did require semicolons to delimit statements.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Tuesday, 08-Oct-2019 16:40:37 EDT Don Romano 🍹
If programming language grammars followed the rules of Information Theory, you would only ever need to include a token if leaving it out would result in an ambiguity:
int x = sin y
int x = sin(y);
These two statements should be equivalent. No need for the semicolon; the newline should be enough. No need for parens; sin is known to be a function with one argument and there’s a newline that terminates the argument list.
And so on, and so on...
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Tuesday, 08-Oct-2019 16:33:49 EDT Don Romano 🍹
Parsers for programming languages are pedantic bastards.
“You left out a comma. I therefore refuse to parse the rest of this program.”
I mean, I’m a pedantic bastard myself, so I rarely make mistakes like that, but it’s kind of silly.
fn(1, 2 3)
Now, what could I have possibly meant in this situation other than a comma?
If you leave out a curly bracket, it makes more sense that the parser would get confused at that, because once you remove the white space, you can’t see where it goes.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Tuesday, 08-Oct-2019 16:28:30 EDT Don Romano 🍹
The Art of Computer Science is a multiple volume book that Donald Knuth has taken upon himself to complete one day. He’s been working on it for decades and he’s still not finished. The fact that the unwritten volumes contains stuff I’ve heard about suggests what a vast field he has chosen to cover. Even the list of chapters on Wikipedia is a little bit overwhelming.
“Computer science” is about as specific a term as “mathematics”. Not even the top mathematicians are experts in every branch.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Tuesday, 08-Oct-2019 14:53:02 EDT Don Romano 🍹
@byllgrim I might have to go and actually get a degree of some kind, or maybe find the right friends.
I'm too enamoured with the foundations of computer science and mathematics to be writing applications.
You don't get to implement actual algorithms unless you move away from that field.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Tuesday, 08-Oct-2019 14:50:46 EDT Don Romano 🍹
@tmy That's a surprising use of GIS. Floor plans sound like more of a CAD thing than a GIS thing.
-
Don Romano 🍹 (thj@mastodon.cloud)'s status on Tuesday, 08-Oct-2019 14:49:39 EDT Don Romano 🍹
@byllgrim It sounds like the kind of profession where actually finding a job might be difficult, because there are so few jobs of that kind out there.
I think what ended up happening with me is that I picked much lower hanging fruit than I have the talent for, because my ADHD held me back.
I'm thinking of changing my course.
I don't want to write application software. I want to write libraries, compilers and operating systems.