Ai Dreams Forum

Member's Experiments & Projects => AI Programming => Topic started by: Zero on June 27, 2019, 01:04:42 pm

Title: I-expression
Post by: Zero on June 27, 2019, 01:04:42 pm
From Wikipedia (https://en.wikipedia.org/wiki/M-expression#I-expressions):
Quote
A more recent (circa 2003) variant is I-expressions, which use indentation to indicate parentheses implicitly, and are thus in some ways intermediate between S-expressions and M-expressions. I-expressions were introduced in Scheme Request For Implementation 49 as an auxiliary syntax for Scheme, but they have not been widely adopted.

Example from https://srfi.schemers.org/srfi-49/srfi-49.html (https://srfi.schemers.org/srfi-49/srfi-49.html)

define (fac x)
    if (= x 0) 1
        * x fac (- x 1)

let
    group
        foo (+ 1 2)
        bar (+ 3 4)
    + foo bar


I like it. It's elegant, isn't it?
Title: Re: I-expression
Post by: 8pla.net on June 28, 2019, 07:34:52 pm
"which use indentation to indicate parentheses implicitly"

Is that what it's for, indentation, to take the place of parentheses?
Title: Re: I-expression
Post by: Zero on June 30, 2019, 12:27:44 pm
That's right. Cool thing is you still have a choice whether to use indentation or parens as you see fit.