Skip to content

choices

pannous edited this page May 11, 2023 · 4 revisions

The guiding philosophy of angle is to avoid false diachomies whenever possible. As a result Contrary to a popular mantra, there is often not "one and only one way to top things", instead all obvious ways to do things should be captured by the language.

Angle parses both # and // as comments

One example is that we are agnostic to tabs vs spaces vs braces. The following are just preferences by the user and or linter: example:{field}

example:
 field
example
  field
end

However in certain situations angle is opinionated:

significant white space and new lines:

In general whitespaces and newlines do carry semantics: newlines hint at block starts, block ends, and definitely end of expression. If one needs multiple expression, these can be expressed by \

There is no difference between statements and expression

That is our choice: all things shall return things, return statements are optional and mostly a means of control flow

execution by default

Iff a statement occurs in an execution context, it will be executed without braces or exclamation wasp. to end this program: exit end this program!

Is the explicit execution operator "!" ever needed? Only when encountering (quoted) data: not_really_a_program={exit} not_really_a_program # just returns {exit} not_really_a_program!

What about not_really_a_program=exit not_really_a_program still executes

this only seemingly contradicts:

construction/delayed execution by default

In angle everything is treated symbolically with lazy/delayed execution/evaluation until the very end.

Home

Philosophy

data & code blocks

features

inventions

evaluation

keywords

iteration

tasks

examples

todo : bad ideas and open questions

⚠️ specification and progress are out of sync

Clone this wiki locally