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.
  • anton
    link
    fedilink
    arrow-up
    2
    ·
    10 months ago

    I think S-expresions are an often overlooked encoding and when used on code it results in a lisp dialect.
    The main advantages are no ambiguity, easy parsing/interpretation and lisp being an established language family, the main disadvantage is a lot of parentheses.

    Now for some barely relevant rambling: By implementing your own simple lisp dialect you can tailor it to your own needs by simply not implementing IO or even limiting computational complexity by limiting recursion and not allowing first class functions.