I-Regexp: An Interoperable Regular Expression Format
datatracker.ietf.org3 pointsby tonyg0 comments
($lambda (f) (f (+ 3 4)))
Is `f` a fexpr or a closure? We cannot know until runtime. Person = <person @name String @address Address>
as above, or Person = <person {
@name "name": String
@address "address": Address
}>
or Person = {
@name 1: String
@address 2: Address
}
etc. all produce the same host-language record, e.g. in TypeScript export type Person = {
name: String,
address: Address,
}; Person = <person @name String> .
and a "version 2" with Person = @v2 <person @name String @address Address>
/ @v1 <person @name String> .
Then, Person.v2 from "version 2" would be parseable by Person from "version 1", and Person from "version 1" would parse using "version 2" as a Person.v1. <tag v1 v2 v3>
If you put a single dictionary-valued "field" in a record, you get a variation with named fields <tag {
field1: value1
field2: value2
field3: value3
}>
Records have positional "fields" because of the Scheme heritage of the design.
https://datatracker.ietf.org/doc/html/rfc9485