Skip to content

Commit

Permalink
Update unorthodoxy.md
Browse files Browse the repository at this point in the history
  • Loading branch information
refaktor authored Dec 22, 2023
1 parent 73e10e4 commit 88c3abe
Showing 1 changed file with 15 additions and 10 deletions.
25 changes: 15 additions & 10 deletions _sandbox/unorthodoxy.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,30 @@ _Being unorthodox offers no benefit by itself._

_If you aren't creating anything really new, just use the old._

Rye is a programming language, no different than <Insert your own>. Here I am trying to document sides of Rye that can be somewhat different, because the things that aren't, you already understand.
Many of these specifics come from Rye's inspirators, Rebol, Factor, Shell and Go.
Rye is a programming language, no different than _insert-your-own_. Here I will try to document sides of Rye that are somewhat different. Because the things that aren't, you already understand.
Many of these specifics come from Rye's inspirators, Rebol, Factor, Shell and Go. Some are unique.

## Newlines and spaces

Whole Rye program could be written in one line. There are no statement separators (there are also no statements, just expressions btw).
Whole Rye program could be written in one line. There is no concept of lines, no line separators.

Each Rye token must be separated by a space.
Each Rye token must be separated by a space. This also means that parenthesis or operators must always be one space removed from it's neighbouring tokens.

Rye knows a token "," called expression guard, which is optional, but can help you explicitly safeguard the limits of expressions.
Rye knows a token "," called expression guard, which is optional. It can help you explicitly safeguard the limits of expressions or visually signify them.

----
## Conventions around nouns, verbs and adjectives ...

_Unordered_
Words in Rye can be bound to Rye values. We try to implement these conventions ... we aren't always sucsessfull as we also want to be succint and lean on the
some general conventions everyone is already used to.

## Coding conventions
* **Nouns** are usualy bound to concrete values (person, age, email)
* **Verbs** are usually bound to functions (send, print, inspect)
* **Adjectives** usually return boolean results (is-hot, is-cold, is-red) and start with "is-"
* **Nouns** starting with "is-" also return boolean result (is-integer, is-email, is-zero)
* **Nouns** ending with **?** stand for **get-**. Usually it's used when a **noun** is a property (length?, color?, age?)
* **Nouns** that are types or kinds in the language are constructors (fn, context, dict, list, spreadsheet)

* ? at the end of the word stands for get- and is usually used when a word is more of a property than a verb. Like: length? , color?
* functions that return boolean values often use is-xxxx. Like: is-integer , is-positive
----

## Op-words and Pipe-words

Expand Down

0 comments on commit 88c3abe

Please sign in to comment.