« first day (1016 days earlier)      last day (759 days later) » 

00:03
I'd like to deny them
@lyxal You don't use groupImpl directly, you have to use group and that will call groupImpl (you can check out the number tests in InterpreterTests for an example of that)
Oh no, groupImpl is accessible in the entire package
It should go into an object
@Seggan (I did try to learn Racket once, and it seemed cool, but I just hated the IDE (Dr. Racket) and lost interest in the project itself (Wezl and I were going to make a fast Befunge (or a fungeoid, at least (is that how you spell it?))))
clojure is real nice
It does seem nice, but I've heard the runtime errors are super weird because they're Java errors
And it has several different sorts of data type types to deal with the JVM
@user you get used to them
@user i dont follow
you mean lists/vectors/seqs?
No like deftype, defrecord, and reify
idk maybe I just misunderstood their purpose when I learned about them
But you have like protocols and interfaces
And I just found it really confusing how to represent expressions for a language I was trying to parse
@user ah
i never use em, too complicated, i agree
00:16
How do you define custom data types then?
Or is it okay to just use maps for everything?
Okay, reading the docs again, they're making more sense
Have you tried Typed Clojure?
@user you dont :P
i use maps
@user no
but im interested
actually i dont think itll work for fig
i rely heavily on duck typing
But maybe for a different project?
i dont use clojure outside of fig
Although adding types to a lisp would probably make it uglier than adding types to Python or JS (Python's type hints and TS don't look much different from Python without type hints and JS)
true
00:20
I tried typed Racket once and it looked kinda ugly, not very lispy at all :(
I wonder how ugly typed Vyxal would be (I know it'd be a dumb thing to add to a stack-based lang, but just imagine)
Another digraph for type annotations, I guess
And the same design for classes that lyxal's come up with already
Darn it, I totally forgot to design the v3 interpreter with debugging in mind
@user not very, I don't think
Yeah as long as the type system is super limited, it'd just be type hints and classes, just like Python
and besides, there's some cases were static typing is impossible in stack languages
I think we may have to make a separate Debugger class with an entirely different implementation from Interpreter (for v3)
so it'd have to just be hints
00:23
Yeah
Factor does have effects but not all functions can have a fixed arity or coarity
Would be interesting to see how cursed a typed stack-based lang would be
with gotos
and then structures like the for-loop and while-loop wouldn't be able to tell you the type of the top of the stack after execution.
at least, not at compile time
Yeah, while loops would be nigh impossible to type
@lyxal halting problem go brr
thats why the jvm requires typing annotations in the bytecode for loops
I kinda want to learn Guile Scheme actually
So I can use Guix
00:44
I wrote my first Vyxal answer (codegolf.stackexchange.com/a/257144/113573); feedback would be appreciated :)
You might want to use vyxal.pythonanywhere.com as it runs the latest version
vyxapedia runs 2.4.1
which is from mid-2021
the latest version is 2.19.0 which was released 6 days ago
other than that, I think it's a pretty good answer given Jelly is only 3 bytes shorter
I will do that, thanks :)
also, 25 bytes if outputting a list of numbers/strings is acceptable
and welcome to vyxal, we all hope you enjoy your stay!
01:17
Oh hey, it's the golfer formerly known as Adam
01:30
Yep, that's me, hey
On an unrelated note, I think there's an error in the documentation; the description for ℅ (Random Choice) in elements.md(github.com/Vyxal/Vyxal/blob/main/documents/knowledge/…) says that it outputs from 0 to n, but it appears it actually outputs from 1 to n (inclusive)...?
Lyxal opened PR #1566 (Vyxal/Vyxal) (Vyxal:fix-documentation-for-℅ → Vyxal:main): Make `℅` state it's 1 to n, not 0 to n in the docs
should it be 0 to n?
Means you can do a 1 in n chance easily
Or generate a random inedx
the idea between 1 to n is that it's cast to range first
but I'll open a pr for that too, and we can merge whichever behaviour we want and close the other
We can just use the flag for setting the start of a range, right?
01:41
Just to clarify, it's going to be 0 (inclusive) to n (exclusive), right?
Not inclusive on both ends?
inclusive
that's how random.randint works
Lyxal opened PR #1567 (Vyxal/Vyxal) (Vyxal:make-℅-from-0-to-n → Vyxal:main): Make ℅ go from 0 to n
aight, #1566 is for keeping 1 to n behaviour, #1567 is for 0 to n behaviour
the endpoints of #1567 can be changed if needed
but this way, it's a matter of close one, merge the other
do not merge both #1566 and #1567
2
This is a silly question, but how do you take a list as input?
01:59
Python style list
Vyxal syntax also works
Also python tuple style
@97.100.97.109 there's no such thing as a silly question here - we all have to start somewhere :p
Oh, I forgot the string quotes, whoops
Thanks
@lyxal With the exception of the question "are cookies a good food item?". That's a silly question because cookies are obviously good food items
@97.100.97.109 happy to help :)
@lyxal No, no, it's a valid question, maybe they're referring to browser cookies. Not all of those are good for you
02:17
Also, the Vyxapedia tutorial says that the arity is optional and defaults to one (vyxapedia.hyper-neutrino.xyz/beginners#structures), but when I exclude the arity (vyxal.pythonanywhere.com/#WyIiLCIiLCLOu3wxOyIsIiIsIiJd) it tells me that "Arity must be parsable as an integer" (unless I'm doing something wrong)
Don't include the |
That's only necessary if you have an arity
Ah, I see
03:00
And you can use T and d to change arity anyway
 
9 hours later…
11:56
Okay so a slight issue with the testing helpers - they don't compare floats very nicely
e.g.
ctx.push(VNum(5.1), VNum(-45.4))
        Interpreter.execute(AST.Command("+"))
        assertResult(VNum(-40.3))(ctx.pop())
precision issue i assume?
yeah
it's too precise
could make some kind of float assertion that uses a tolerance, or could compute the result in scala for the assertion
the first is probably... way more generalizable
well that's what I was going to suggest
vyxal 2 float equality already uses an episilon
so it'd just be porting that over
the main issue here is incorporating it into infrastructure
which is what my question was going to be
 Expected -2835860390359859/70368744177664, but got -22686883122878873/562949953421312 (ElementTests.scala:33)
That's the test error btw
the problem is that one is -40.30001 while the other is -40.30002
you could hardcode the tests for vyxal equality, then actually run vyxal equality and assert that it gives the right result in all the other float tests :P
12:09
@user can I run the test suite with mill?
./mill resolve jvm._ doesn't list any test commands
1
Q: Salacious Bacon Tripod

lyxalIn a certain chatroom, we like making acronym jokes about the build tool we use called sbt. While it usually stands for "Scala Build Tool", we aim to come up with all sorts of meanings, such as: Stupid Brick Teeth Sussy Baka Training Shady Blue Tourists Seriously Big Toes Silly Bear Topics Salac...

12:33
Ask for a tip about Vyxal. How is EOF detected? — lesobrod 2 mins ago
@lesobrod it's automatically detected
if you're asking about strings with newlines, just surround your string with " and include \n for newlines
if you're asking about how to tell when you're at the end of input, that isn't a thing, because input cycles back around to the first input
 
1 hour later…
13:46
I've tried wrapping the Floats in strings in the call to VNum to see if that makes things any better in the floating point test
because it looks like the inaccuracies are being introduced when the VNum is created
There should still be an epsilon comparison of floats though
But string wrapping should help maybe
Oh huh there's no VNum string overload
Coulda sworn there was
Well that's okay, it can be added in the conversions.
It'd be a simple call to Real
Monologging this now because bed is now
I'll see what y'all come up with in the morning
o/
 
2 hours later…
16:13
@lyxal Real probably already has that in a method somewhere, you should be able to use that in VNum#equals
Okay looks like it doesn't lol
Maybe the method is in some typeclass but I can't find it
@lyxal Oh, I forgot to add a test module for the jvm
You can edit build.sc and copy the object test extends ... line into the jvm object
@lyxal lmao
(minor correction: It doesn't stand for Scala Build Tool anymore, it's just sbt now, not an acronym)
@lyxal jvm.test should work now
(in the branch we're were adding tests)
@lyxal There's VNum.from, I renamed it to apply just now
> y'all ever just see a meme and rinse orderly flower landings so hard
rofl
tmw you forget negative signs exist
16:43
@lyxal Done!
Not sure what epsilon to use though
i read somewhere 1e-9 is standard or smth
Ah, thanks
 
3 hours later…
New contributor?
 
1 hour later…
21:02
It me
I'm just trying to clean up the documentation
But I see some inconsistencies... for one, it seems that kP and kQ don't work as advertised; it seems that kP includes spaces (in addition to some unprintable characters) and kQ doesn't output anything at all
It's also weirdly not in ASCII order
21:28
You're probably on 2.4.1
They work fine
21:38
@user 1e-15 is what v2 uses
21:48
@emanresuA I'm using whatever version vyxal.pythonanywhere.com is at
@lyxal I'll change it to that later then
!!/run kQ
@lyxal ` !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~`
The bot uses vyxal.pythonanywhere.com too
Hm, I have no idea what I did wrong
22:19
Okay, now it's working, I don't know what was wrong before
Gremlins. It's always the gremlins
You might've been using lyxal.pa before
22:43
Probably

« first day (1016 days earlier)      last day (759 days later) »