JSON and YAML work great for passing data between languages.

However, sometimes, I have a pure function like y = mx + b, that I would like to pass between languages (for making plots).

What operators should be available? I think jsonnet’s standard library(skip to the math operators) is the perfect example of a useful set of operations that could be shared across basically all programming languages. The operations would take/return json values rather than working with language-specific data types.

My question is does such a language exist already?

Close candidates:

  • Dhall and jsonnet are pure languages that generate json. But AFAIK they can’t actually serialize pure functions. They can only use pure functions as a shorthand for generating json. I want to actually save/send functions over the wire.
  • armchair_progamerM
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    10 months ago

    Code is data.

    I would just transmit the program as source (literally send y = mx + b) instead of trying to serialize it into JSON or anything. You’ll have to write a parser anyways, printing is very easy, and sending as source minimizes the points of failure.

    Your idea isn’t uncommon, but there’s no standard set of operations because it varies depending on what you code needs to achieve. For instance, your code needs to make plots, other programs send code for plugins, deployment steps, or video game enemies.

    There is a type of language for what you’re trying to achieve, the embedded scripting language (“embedded” in that it’s easy to interpret and add constants/hooks from a larger program). And the most well-known and well-supported embedded scripting language is Lua. Alternatively, assuming you’re only using basic math operators, I recommend you just make your own tiny language, it may actually be easier to do so than integrate Lua.