• 0 Posts
  • 15 Comments
Joined 2 years ago
cake
Cake day: December 9th, 2023

help-circle



  • Except that in practice people also indent their code, making the parentheses redundant clutter, especially since the usual convention is to put all of the closing parentheses at the end where it hard to immediately match each one up visually with its corresponding opening parenthesis.

    My preference is for the way Haskell handles this, where essentially there is a syntax built on braces and semicolons that you can always fall back on, but most of the time you can just use indentation and it will figure things out just fine via built-in layout rules.

    Finally, it seems immediately apparent that this is a type-1 lisp given that there is only one syntax for assigning to symbols and it is used both for functions and for other values.


  • A different way of stating my remark is that it might be nice to have a page that lists other lisp variants and has a bullet point or two for saying how ArkScript does things differently in a way that someone might find nicer.

    I’m no frontend dev, so I battle a lot with it so it displays how I want ; I tried with flex to center vertically the « getting started » section, will have to try again.

    Yeah, I remember having to fight similar battles when I created a web page for a similar project! Don’t worry about it if it proves too much of a pain.




  • Given that there are zillions of lisp variants out there, why would someone want to make serious use of this compared to something like Guile Scheme (or one of the other schemes)?

    Having said that, the website and branding is really pretty!!! In particular, I absolutely love your usage of color gradients. Some minor feedback is that when the screen is wide, I think that would be nice if the “A small, lisp-inspired, functional scripting language / Get Started” element flowed to the middle relative vertically to the examples column rather than floating at the top. (I do like how it floats above the right column when the screen is narrow, though.)

    Also, just to check, do you have a time limit set for the Playground so that people do not over-tax your system? (You might also look into WASM so that people run their scripts locally.)


  • The borrow checker is a lot deeper than merely making pointer use a bit safer; it provides a model for data ownership based on affine types.

    Also, to the extent that “Ada requires the programmer to give enough information to the compiler so as to ensure that it actually outputs what you want it to,” if I understand you correctly, that is basically true of every language with a static type system. At the extreme end, we have dependently typed languages which essentially let you express arbitrary mathematical propositions in your types and, if the program compiles, then you know that they will always be satisfied without having to do any checks at runtime.






  • Imagining your death. :P

    But seriously, it’s perfectly sensible when remember that i is just the mathematical representation of “left turn”, just like -1 is the mathematical representation of “go backwards”-- and as we know, two left turns sends you backwards. So think about this triangle in the following way:

    Imagine you are a snail, starting at the origin. Now imagine that you walk forward 1 step along the horizontal line. Then you turn 90° to the left to start walking along the vertical line, but then, because you need to walk i steps along this line you take another 90° turn to the left, which means that you are now walking backwards and you end up back at the origin. How far away from the origin are you? Zero steps.