Doc: little changes
This commit is contained in:
+89
-46
@@ -104,7 +104,7 @@ dev-expr -- Expressions calculator v1.10.0(build 14),2024/06/17 (celestino.amoro
|
||||
-p Print prefix form
|
||||
-t Print tree form <2>
|
||||
-v, --version Show program version
|
||||
>>>
|
||||
>>>
|
||||
----
|
||||
|
||||
<1> Only available for single fraction values
|
||||
@@ -186,7 +186,7 @@ Value range: *-9223372036854775808* to *9223372036854775807*
|
||||
| [blue]`*` | _product_ | Multiply two values | [blue]`-1 * 2` -> -2
|
||||
| [blue]`/` | _Division_ | Divide the left value by the right one^(*)^ | [blue]`-10 / 2` -> 5
|
||||
| [blue]`%` | _Modulo_ | Remainder of the integer division | [blue]`5 % 2` -> 1
|
||||
|===
|
||||
|===
|
||||
|
||||
^(*)^ See also the _float division_ [blue]`./` below.
|
||||
|
||||
@@ -204,15 +204,20 @@ _dec-seq_ = _see-integer-literal-syntax_
|
||||
|
||||
.Examples
|
||||
`>>>` [blue]`1.0` +
|
||||
[green]`1` +
|
||||
[green]`1`
|
||||
|
||||
`>>>` [blue]`0.123` +
|
||||
[green]`0.123` +
|
||||
[green]`0.123`
|
||||
|
||||
`>>>` [blue]`4.5e+3` +
|
||||
[green]`4500` +
|
||||
[green]`4500`
|
||||
|
||||
`>>>` [blue]`4.5E-33` +
|
||||
[green]`4.5e-33` +
|
||||
[green]`4.5e-33`
|
||||
|
||||
`>>>` [blue]`4.5E-3` +
|
||||
[green]`0.0045` +
|
||||
[green]`0.0045`
|
||||
|
||||
`>>>` [blue]`4.5E10` +
|
||||
[green]`4.5e+10`
|
||||
|
||||
@@ -242,35 +247,43 @@ _digit-seq_ = _see-integer-literal-syntax_
|
||||
====
|
||||
|
||||
.Examples
|
||||
// [source,go]
|
||||
// ----
|
||||
`>>>` [blue]`1 | 2` +
|
||||
[green]`1|2` +
|
||||
[green]`1|2`
|
||||
|
||||
`>>>` [blue]`4|6` [gray]_// Fractions are always reduced to their lowest terms_ +
|
||||
[green]`2|3` +
|
||||
[green]`2|3`
|
||||
|
||||
`>>>` [blue]`1|2 + 2|3` +
|
||||
[green]`7|6` +
|
||||
[green]`7|6`
|
||||
|
||||
`>>>` [blue]`1|2 * 2|3` +
|
||||
[green]`1|3` +
|
||||
[green]`1|3`
|
||||
|
||||
`>>>` [blue]`1|2 / 1|3` +
|
||||
[green]`3|2` +
|
||||
[green]`3|2`
|
||||
|
||||
`>>>` [blue]`1|2 ./ 1|3` [gray]_// Force decimal division_ +
|
||||
[green]`1.5` +
|
||||
[green]`1.5`
|
||||
|
||||
`>>>` [blue]`-1|2` +
|
||||
[green]`-1|2` +
|
||||
[green]`-1|2`
|
||||
|
||||
`>>>` [blue]`1|-2` [gray]_// Invalid sign specification_ +
|
||||
[red]_Eval Error: [1:3] infix operator "|" requires two non-nil operands, got 1_ +
|
||||
[red]_Eval Error: [1:3] infix operator "|" requires two non-nil operands, got 1_
|
||||
|
||||
`>>>` [blue]`1|(-2)` +
|
||||
[green]`-1|2`
|
||||
// ----
|
||||
|
||||
|
||||
Fractions can be used together with integers and floats in expressions.
|
||||
|
||||
.Examples
|
||||
`>>>` [blue]`1|2 + 5` +
|
||||
[green]`11|2` +
|
||||
[green]`11|2`
|
||||
|
||||
`>>>` [blue]`4 - 1|2` +
|
||||
[green]`7|2` +
|
||||
[green]`7|2`
|
||||
|
||||
`>>>` [blue]`1.0 + 1|2` +
|
||||
[green]`1.5`
|
||||
|
||||
@@ -281,12 +294,15 @@ Strings are character sequences enclosed between two double quote [blue]`"`.
|
||||
|
||||
.Examples
|
||||
`>>>` [blue]`"I'm a string"` +
|
||||
[green]`I'm a string` +
|
||||
[green]`I'm a string`
|
||||
|
||||
`>>>` [blue]`"123abc?!"` +
|
||||
[green]`123abc?!` +
|
||||
[green]`123abc?!`
|
||||
|
||||
`>>>` [blue]`"123\nabc"` +
|
||||
[green]`123` +
|
||||
[green]`abc` +
|
||||
[green]`abc`
|
||||
|
||||
`>>>` [blue]`"123\tabc"` +
|
||||
[green]`123{nbsp}{nbsp}{nbsp}{nbsp}abc`
|
||||
|
||||
@@ -307,25 +323,30 @@ The items of strings can be accessed using the square `[]` operator.
|
||||
|
||||
.Item access syntax
|
||||
====
|
||||
_item_ = _string-expr_ "**[**" _integer-expr_ "**]**"
|
||||
*_item_* = _string-expr_ "**[**" _integer-expr_ "**]**"
|
||||
====
|
||||
|
||||
.Sub-string syntax
|
||||
====
|
||||
_sub-string_ = _string-expr_ "**[**" _integer-expr_ "**:**" _integer-expr_ "**]**"
|
||||
*_sub-string_* = _string-expr_ "**[**" _integer-expr_ "**:**" _integer-expr_ "**]**"
|
||||
====
|
||||
|
||||
.String examples
|
||||
`>>>` [blue]`s="abcd"` [gray]_// assign the string to variable s_ +
|
||||
[green]`"abcd"` +
|
||||
[green]`"abcd"`
|
||||
|
||||
`>>>` [blue]`s[1]` [gray]_// char at position 1 (starting from 0)_ +
|
||||
[green]`"b"` +
|
||||
[green]`"b"`
|
||||
|
||||
`>>>` [blue]`s.[-1]` [gray]_// char at position -1, the rightmost one_ +
|
||||
[green]`"d"` +
|
||||
[green]`"d"`
|
||||
|
||||
`>>>` [blue]`\#s` [gray]_// number of chars_ +
|
||||
[gren]`4` +
|
||||
[gren]`4`
|
||||
|
||||
`>>>` [blue]`#"abc"` [gray]_// number of chars_ +
|
||||
[green]`3` +
|
||||
[green]`3`
|
||||
|
||||
`>>>` [blue]`s[1:3]` [gray]_// chars from position 1 to position 3 excluded_ +
|
||||
[grean]`"bc"`
|
||||
|
||||
@@ -432,7 +453,7 @@ Array's items can be accessed using the index `[]` operator.
|
||||
|
||||
.Sub-array (or slice of array) syntax
|
||||
====
|
||||
*_slice_* = _string-expr_ "**[**" _integer-expr_ "**:**" _integer-expr_ "**]**"
|
||||
*_slice_* = _string-expr_ "**[**" _integer-expr_ "**:**" _integer-expr_ "**]**"
|
||||
====
|
||||
|
||||
.Items of list
|
||||
@@ -457,10 +478,13 @@ Array's items can be accessed using the index `[]` operator.
|
||||
`>>>` [blue]`#list` +
|
||||
[green]`3`
|
||||
|
||||
`>>>` [blue]`index=2; ["a", "b", "c", "d"].index` +
|
||||
`>>>` [blue]`index=2; ["a", "b", "c", "d"][index]` +
|
||||
[green]`c`
|
||||
|
||||
|
||||
`>>>` [blue]`["a", "b", "c", "d"][2:]` +
|
||||
[green]`["c", "d"]`
|
||||
|
||||
|
||||
=== Dictionaries
|
||||
The _dictionary_, or _dict_, data-type is set of pairs _key/value_. It is also known as _map_ or _associative array_.
|
||||
@@ -474,14 +498,11 @@ _empty-dict_ = "**{}**" +
|
||||
_non-empty-dict_ = "**{**" _key-scalar_ "**:**" _any-value_ {"**,**" _key-scalar_ "**:**" _any-value} "**}**" +
|
||||
====
|
||||
|
||||
.Examples
|
||||
`>>>` [blue]`{1:"one", 2:"two"}` +
|
||||
[green]`{1: "one", 2: "two"}` +
|
||||
`>>>` [blue]`{"one":1, "two": 2}` +
|
||||
[green]`{"one": 1, "two": 2}` +
|
||||
`>>>` [blue]`{"sum":1+2+3, "prod":1*2*3}` +
|
||||
[green]`{"sum": 6, "prod": 6}`
|
||||
|
||||
.Item access syntax
|
||||
====
|
||||
*_item_* = _dict-expr_ "**[**" _key-expr_ "**]**"
|
||||
====
|
||||
|
||||
.Dict operators
|
||||
[cols="^2,^2,4,5"]
|
||||
@@ -489,11 +510,27 @@ _non-empty-dict_ = "**{**" _key-scalar_ "**:**" _any-value_ {"**,**" _key-scalar
|
||||
| Symbol | Operation | Description | Examples
|
||||
|
||||
| [blue]`+` | _Join_ | Joins two dicts | [blue]`{1:"one"}+{6:"six"}` -> _{1: "one", 6: "six"}_
|
||||
| [blue]`.` | _Dict item value_ | Item value of given key | [blue]`{"one":1, "two":2}."two"` -> _2_
|
||||
| [blue]`[]` | _Dict item value_ | Item value of given key | [blue]`{"one":1, "two":2}["two"]` -> _2_
|
||||
| [blue]`in` | _Key in dict_ | True if key is in dict | [blue]`"one" in {"one":1, "two":2}` -> _true_ +
|
||||
[blue]`"six" in {"one":1, "two":2}` -> _false_
|
||||
|===
|
||||
|
||||
.Examples
|
||||
`>>>` [blue]`{1:"one", 2:"two"}` +
|
||||
[green]`{1: "one", 2: "two"}`
|
||||
|
||||
`>>>` [blue]`{"one":1, "two": 2}` +
|
||||
[green]`{"one": 1, "two": 2}`
|
||||
|
||||
`>>>` [blue]`{"sum":1+2+3, "prod":1*2*3}` +
|
||||
[green]`{"sum": 6, "prod": 6}`
|
||||
|
||||
`>>>` [blue]`{"one":1, "two":2}["two"]` +
|
||||
[green]`2`
|
||||
|
||||
`>>>` [blue]`d={"one":1, "two":2}; d["six"]=6; d` +
|
||||
[green]`{"two": 2, "one": 1, "six": 6}`
|
||||
|
||||
|
||||
== Variables
|
||||
_Expr_, like most programming languages, supports variables. A variable is an identifier with an assigned value. Variables are stored in _contexts_.
|
||||
@@ -509,17 +546,23 @@ NOTE: The assign operator [blue]`=` returns the value assigned to the variable.
|
||||
|
||||
.Examples
|
||||
`>>>` [blue]`a=1` +
|
||||
[green]`1` +
|
||||
[green]`1`
|
||||
|
||||
`>>>` [blue]`a_b=1+2` +
|
||||
[green]`1+2` +
|
||||
[green]`1+2`
|
||||
|
||||
`>>>` [blue]`a_b` +
|
||||
[green]`3` +
|
||||
[green]`3`
|
||||
|
||||
`>>>` [blue]`x = 5.2 * (9-3)` [gray]_// The assigned value has the approximation error typical of the float data-type_ +
|
||||
[green]`31.200000000000003` +
|
||||
[green]`31.200000000000003`
|
||||
|
||||
`>>>` [blue]`x = 1; y = 2*x` +
|
||||
[green]`2` +
|
||||
[green]`2`
|
||||
|
||||
`>>>` [blue]`_a=2` +
|
||||
[red]`Parse Error: [1:2] unexpected token "_"` +
|
||||
[red]`Parse Error: [1:2] unexpected token "_"`
|
||||
|
||||
`>>>` [blue]`1=2` +
|
||||
[red]`Parse Error: assign operator ("=") must be preceded by a variable`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user