« first day (4096 days earlier)      last day (739 days later) » 

12:56 AM
i wonder if i can come up with a good tinylisp solution to this challenge
dealing with ragged lists does seem to be something tinylisp is great at
 
@des54321 Dew it ^_^
 
CMQ: Best color of ethernet patch cable?
 
working on it now
main problem is theres no great way to compare lists with ints
however (l list int) does evaluate to (), instead of 1/0, so there might be something i can do with that
 
@Neil nil is already defined in the standard library as ()--did you mean treat () as the empty lazy list, or did you mean create a new value that can be used as the empty lazy list?
 
1:46 AM
@DLosc im pretty sure its working, now im going through the pain of typing out a gazillion test cases into tinylisp format
 
2:06 AM
 
 
2 hours later…
3:55 AM
@DLosc yes I mean treat it as an empty lazy list
 
Mar 8 at 19:58, by Radvylf Programs
The late 2010s and early 2020s have been tough for technology terminology. "I bought a WAP with lots of crypto" now means something totally different.
@RadvylfPrograms Okay so apparently using the 192.168 IP instead of my server IP gets me 40x faster speeds
 
4:10 AM
@allxy hack font? lol
@RadvylfPrograms how is my codepage ^?
 
@Neil Oh, okay--so basically what you're saying is lazy-nil doesn't have to be a function, it can be a sentinel value that's explicitly checked for. Yes, that seems to work, and it's a bit simpler.
(def lazy-nil (q lazy-nil))

(def lazy-empty?
 (lambda (lseq)
  (equal? lseq lazy-nil)))

(def lazy-head
 (lambda (lseq)
  (if (lazy-empty? lseq)
   lazy-nil
   (lseq 0))))

(def lazy-tail
 (lambda (lseq)
  (if (lazy-empty? lseq)
   lazy-nil
   (lseq 1))))

(def lazy
 (lambda (ls)
  (if ls
   (substitute (q &ls)
    (quote ls)
    (lambda (switch)
     (if switch
      (lazy (tail &ls))
      (head &ls))))
   lazy-nil)))

(def lazy-cons
 (lambda (val lseq)
  (substitute (q &lseq)
   (quote lseq)
 
@PyGamer0 Some of those characters aren't going to render the correct width in most fonts, but looks good
Is this going to be a 7-bit language?
 
@PyGamer0 I sense APL and BQN influence
@RadvylfPrograms Yeah, BQN looks great in the font on its website, but then you copy-paste it over here and you have to look twice to verify it's even the same characters.
 
@PyGamer0 checkmarks? diode electrical symbols? sure why not, I suppose "golfing lang" and "typeable on a normal keyboard" are already contradictory goals so you might as well go all the way
 
I really like what Jelly does, with all of its codepage being typeable on a single keyboard layout (US-INTL)
Copy-pasting is still common, but there's another option for people who use it a lot
Or do what (Charcoal, or maybe Canvas?) does and have a readable way to type it, that gets compiled into the actual code by your online interpreter
 
4:21 AM
it's Charcoal that does that
 
Yeah I get those mixed up lol
 
user image
5
 
That's...actually pretty true lol
Although Unicode does restrict you a bit I think
Even when typeable-on-a-keyboard and renders-the-right-width don't hold you back
 
@des54321 i don't see a diode? lol
@des54321 uh i have mostly meaningful names for builtins
 
diodes
 
4:25 AM
those aren't diodes
⍋⍒
It's APL's grade-up and grade-down
 
@PyGamer0 by names i mean symbols, your symbols mean something in relation to what they do, but at the cost of not being typable on a normal keyboard
@lyxal theyre basically diode symbols, i guess minus the line at the tip
 
@des54321 lol
@RadvylfPrograms ^
 
@des54321 'CHRISTMAS TREE WITH POLE THROUGH IT' (U+234B) and 'UPSIDE DOWN CHRISTMAS TREE WITH POLE THROUGH IT' (U+2352)
 
CHRISTMAS TREE‽‽‽‽‽‽
 
@DLosc yes you do
´ is foldl1, ` is scanl1, is pair
there is some k influence too :p
W is where
each right, each left
 
4:41 AM
@des54321 Well, those would have been the names if they'd asked me ;)
 
@des54321 hey i can pick all 3, i will make a keyboard layout for flax :P
 
@PyGamer0 okay now thats called cheating :P
 
I really need to stop being so hard on myself about the time I spend being unproductive
 
4:57 AM
Yeah, the lack of proper monospacing is what really jumps out at me. :(
 
@PyGamer0 I don't like that
Those look really similar, it's fine for tihngs like string literals but with different operations it'll get confusing
 
Also ≢ renders really badly on GitHub (at least in Chrome)--looks like there's a slash through the following two characters rather than the ≡.
@PyGamer0 Are there mnemonics behind the choices of accented letters?
 
yeah
flax looks like a cursed mix of apl and bqn with sprinkles of jelly: +´⍳10
 
> mix of apple and bacon sprinkled with jelly
mmm
 
mmm
yeah the sbcs WORKS
time to create a new release
ooh we surpassed 2⁹ commits
just need docs search like MATL...
 
6:01 AM
@PyGamer0 Whoa. Pip only just passed 2⁷.
 
tfw afking on an ipad
 
@PyGamer0 only 2^9?
Cringe.
Talk to me when you reach 2¹¹
 
We can't all be Vyxal
 
6:17 AM
@DLosc I don't see why you can't use nil as the sentinel
 
@RadvylfPrograms Otherwise you'll be going out to the internet and back in to your home network
I think a good enough router should be able to prevent that from needing to happen
 
I'm still wondering what he means by his server ip
I mean, it should be using 192.168.x.x already
 
I was assuming his server also has a public IP
 
I can't imagine it has its own public IP
 
@Neil ...... Oh. I, uh, wow. I guess you can. That wouldn't have worked in my original implementation because it expected lazy-nil to be a function like all other lazy sequences, but your version doesn't need that to be the case, so... yeah. Wow.
 
6:32 AM
you can then write something like (def lazy-head ((lazy-list) (q(and lazy-list (lazy-list 1)))))
bah, I still put the q in the wrong place
 
tinylisp doesn't have a short-circuiting and (due to limitations in the macro system), but that's pretty close to what I wrote:
(def lazy-head
 (lambda (lseq)
  (if lseq
   (lseq 0)
   nil)))
 
@DLosc yeah, I've just discovered that limitation
hmm, I tried (d defun (q (() args (v (c (q d) (c (h args) (c (c (q q) (c (t args) ())) ()))))))) but that also echoes the name :-(
 
6:55 AM
Yeah. Again, macro limitations: since you're eval'ing the cobbled-together call to d inside the macro, it's not a "top-level call," and therefore the interpreter doesn't know to quiesce it.
The macro system I came up with for Appleseed evaluates the result after it returns from the macro, which I think would solve that problem. That's one of the things I want to change if/when I make a tinylisp 2.
 
@DLosc Can't it be something like (i x y x)?
 
@DLosc the other thing that would be nice is a way to choose which arguments are evaluated
 
Hm yes, for web
Short-circuiting isn't really necessary in tinylisp due to no side effects
 
oh, there are side effects
 
@allxy Well yes... but either you make it a lambda and you can't do short-circuiting, or you try to make it a macro and you can't evaluate x and y in their original scopes, which causes problems.
@allxy Short-circuiting is crucial for recursion, tho
Also, yes, disp is a side effect, and you can do some wacky stuff with d if you try hard enough (though you can't redefine something once it's already been defined).
 
7:07 AM
(q (q args (body))) would be a variadic macro, (q ((arg1 (q arg2)) (body))) would be a macro whose first arg was evaluated but whose second wasn't
if the body was (i arg1 (c (q q) (c arg1 ())) arg2) that would then be a short-circuiting or (and is easier because all falsy values evaluate to themselves)
 
@DLosc I guess, yeah
 
@Neil Hm, interesting! I'll file that idea away. I also like the idea of differentiating macros from functions by nesting the list a level deeper rather than adding an extra nil at the beginning.
 
@lyxal :(
time to make dummy commits
 
or once you've written the b macro, (i arg1 (b (q (u arg1))) arg2)
 
@Neil hold on what am I missing that (i arg1 arg1 arg2) wouldnt simply work, why does it have to evaluate to (q arg1) to return arg1?
 
7:20 AM
@Neil So I'm looking at how I wrote these in Appleseed, and I realized it's actually a lot simpler than that because the macro system is basically just a rewriting pass before the expression gets evaluated. For example, either (2-argument or) is (macro (&expr1 &expr2) (if &expr1 &expr1 &expr2))), which means (either x y) gets turned into (if x x y) and then evaluated. The only drawback is that x has to be evaluated twice.
Unfortunately, it's far past my bedtime, so I've got to go now.
o/
 
o/
 
o/
 
o/
 
@DLosc yeah I wanted to avoid that
@des54321 this is under @DLosc's proposal that the return from the macro gets evaluated, which is what I want for arg2 (because it hasn't been evaluated yet) but not for arg1 (because it has)
 
8:15 AM
i managed to speedup nvim
its takes 100ms to startup now!
(i use like 40 plugins)
lazy loading is good
 
 
3 hours later…
10:59 AM
@RadvylfPrograms modding but with clickbait title
 
 
2 hours later…
lol
 
 
3 hours later…
4:10 PM
0
A: Sandbox for Proposed Challenges

chunesGet the trends of an array arraycode-golf There are three types of trends: increasing, e.g. [1,2,3,10,239] decreasing, e.g. [8,5,0,-3,-50] stable, e.g. [7,7,7,7] Note that [1,1,2,3] is not a valid trend. It can be broken up into a stable trend [1,1] and an increasing trend [1,2,3]. In the event...

 
5:03 PM
@Ginger Not really
That's not what he's doing
He's reverse engineering the packets the game's sending to the server, and injecting new ones through a MitM
 
oh
that's cool
 
he's not really doing the reverse engineering, people on wiki.vg have already done that
 
Well, he's doing part of it
Not the hard part, but still
 
6:02 PM
I had a horrible idea for beating the tinylisp solution to Shortest code to produce infinite output, but unfortunately it seems that (load ) suppresses all output from loaded files
okay errors still produce output, but now im just abusing this language
(X
(load A
when saved in A.tl, this produces several lines of errors, but not infinite for some reason
Error: referencing undefined name X
Error: referencing undefined name X
Error: () is not a function or macro
()
Error: referencing undefined name X
Error: referencing undefined name X
Error: () is not a function or macro
I guess you cant really recurse with (load) statements
thats probably a good thing
 
6:32 PM
Unlike many esolangs, tinylisp is actually kinda practical :P
 
practical, except for the fact that you need to import the library to use mathematical operations as simple as multiplication
or, phrased another way, tinylisp+library is practical, pure tinylisp isnt
 
DLosc seems to be a fan of minimal languages, which I can get behind
Just tinylisp without the library can still do everything, right?
 
it can do everything, but you basically have to re-define most of the library
because the library is just a bunch of built-in definitions from the base operations
also of course the fact that tinylisp has absolutely no input reduces the practicality of the lang
 
Oh lol
 
although,,,, I suppose you could theoretically juryrig some form of input using (load)
 
6:50 PM
CMQ: Falsey or Falsy?
 
hmmm thats a good one
I usually write falsy but falsey does seem better honestly
 
falsy
 
Is it me or is there never anything in the review queues? Lol.
 
I've certainly never seen anything in them, are they broken somehow?
 
@pajonk "False eye" of course, smh
 
7:06 PM
I would not think so. Maybe the site has too many active users, if such a thing is possible.
 
It has too few active users, I think, but there are a few users who are very active in the review queues
 
CMQ: how do you pronounce "quine": kine or kwine?
 
kwine
 
I always thought it was kwine as well.
 
@Pyautogui It's been a few months since I last did a review on the meta site, and I still show up as the 5th most recent reviewer in the Reopen votes queue
4
 
7:12 PM
Interesting. So a small minority has a monopoly on all the reviews, effectively?
 
Guess so
There's also just not much activity :(
 
Really? The site seems very active, to me at least.
 
@des54321 kwine
 
@Pyautogui It's mostly site regulars, though. Not a lot of new users coming in
 
Ah, understood. Thanks for the explanation.
 
7:15 PM
I mean, there are new users arriving all the time, but it's not so frequent that we get First Post reviews or question closing reviews every day
 
Makes sense.
 
I'd like to see what percent of our reviews come from each category
Possibly suggested edits
 
That would be interesting!
 
@pajonk Falsey
 
@pajonk Falsey
 
7:54 PM
@des54321 you can still input via function parameter though can't you?
 
@Neil yes, but theres no actual program input, you can really only send input in from another tinylisp program
 
yeah but I mean function parameter is an acceptable input format for code golf
 
true
but im saying that, its still not a practical language if it cant take anything from stdin
 
if you wanted a practical language you'd just use lisp anyway
 
8:58 PM
I've been attempting to make a tinylisp solution to Fault-Tolerant Hello World, and I have come up with something imperfect but sort of workable, I think it fails for less than a dozen of the possible removals
3
okay it actually fails for 18 removals, but out of a 200 byte file thats not that bad
 
Impressive
 
9:14 PM
I made this diagram with google drawings lol
For yet another addition to my famous™ weighted random array item answer
 
9:43 PM
tfw you google "weeb worker"
 

« first day (4096 days earlier)      last day (739 days later) »