• catladywitch@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    Lua - uses tables (hashmaps) for everything like Lisp uses lists (but not homoiconic), and has some functional features including first-class functions and tail call optimisation.

    • everything-narrative@alien.topB
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 months ago

      This.

      Smalltalk’s metaprogramming through classes-as-objects and code-as-objects is very much comparable to Lisp’s.

      Ruby is a modern example, with Pascal/Algol-like syntax with lots pf sugar. It has some very rich metaprogramming.

      • lispm@alien.topB
        link
        fedilink
        English
        arrow-up
        1
        ·
        10 months ago

        Smalltalk also has similar interactive development styles. One can build the application incrementally piece-by-piece. It has a residual graphical integrated development environment -> the development environment is a part of the program. It uses late-binding via message-passing. It starts and saves images (-> dumps of the heap contents, data and code). It is introspective & reflective (one can find out about the running program and can change it).

  • inawarminister@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    Julia is implemented in Scheme I believe, and it had (has?) a lisp-style homoiconic syntax compiler still inside.

    Elixir, which people mentioned, is not homoiconic, but all of its syntax are implemented in a list of threes [module, function-name, arity], and so its macros are quite powerful and hygienic (*). It has a really great REPL story (you can connect through IEX to any Actor in the server). Elixir itself is 100% dynamic functional paradigm, just like Scheme* or Clojure. And Message-Sending paradigm is ridiculously powerful.

    I believe Nim is also interesting, with its heavy emphasis on macros as a way to do systems programming. No homoiconity here too though.

  • Nondv@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    I mean, without any definitions I’d say JavaScript.

    It’s kinda like Scheme: first class functions, vars and functions share namespace, etc

    • emaxor@alien.topB
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 months ago

      This. The first iteration of JavaScript by the creator was literally scheme. Later converted to the C-like syntax we know today because “boss don’t like scheme”.

  • jwezorek@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    i think for something to be like Lisp without actually being Lisp it would need to be functional and feature homoiconicity, or at least something like homoiconicity.The only language like that, that many people would not call a Lisp anyway, is Julia.

    EDIT: wikipedia says Elixir too but I don’t really know anything about Elixir…

  • JackoKomm@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    EcmaScript. It Was planned with scheme in mind and you can still feel it today. It is funny that many things people dislike about it have it’s origin in scheme. One of the problems is that it doesn’t look like a LISP language and people just see it like a Java like language. If they would familiarize themselves with the concepts, they would probably get the idea behind the language.

  • Laugarhraun@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    Many modern languages share some Lisp features. Ruby and Python come to mind.

    In the vein of “the world is not what you think” but very different from Lisp I’d say Forth. Implementing a Forth is a fun exercise.

  • digitalghost0011@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    I think Clojure is a lisp but some people say Clojure is not because of the map and vector literals. If you agree with them definitely Clojure. Probably Elixir if you disagree.