Category:Arturo
This programming language may be used to instruct a computer to perform a task.
Official website |
---|
Execution method: | Interpreted |
---|---|
Garbage collected: | Yes |
Parameter passing methods: | By value |
Type safety: | Safe |
Type strength: | Strong |
Type checking: | Dynamic |
Lang tag(s): | arturo |
See Also: |
|
If you know Arturo, please write code for some of the tasks not implemented in Arturo.
Arturo is a general-purpose, multi-paradigm language that aims to be simple, modern and powerful, vaguely inspired by various other ones - including but not limited to Ruby, Haskell, D, SDL (Simple Declarative Language), Tcl and Lisp.
Contents
Principles[edit]
It is built on some very simple and straightforward principles:
Everything is a simple statement[edit]
There are no "special" language constructs (*even `if` is nothing but a simple statement*). Everything you see is a statement in the form ID <expression> <expression> <expression> ...
. An assignment is nothing but a labeled statement. LABEL: <statement>
Code is data - and data is code[edit]
Arturo can be used both as a data-interchange format and a programming language. Basically all data structures are valid code and all code can be represented as a data structure. Think of it as SDL/Json/YAML/XML combined with the power of Lisp - but without the... sea of opening and closing parentheses.
Each statement returns a value[edit]
Whether what you would consider a "function" or any other statement, it will return a value. If it's a block of code (see: function), the last statement's result will be return - unless specified otherwise.
Functions are first-class citizens[edit]
Functions - or blocks of statements enclosed in {}
- can be anything. Assign them to a symbol/variable, pass them around as arguments to function calls, include them as a dictionary key value, or return them from a function. And of course they can be either named or anonymous/lambda.
Uniform syntax[edit]
There are 3 types of statements.
- Simple statements, that work as a function call in the form of
ID <expressions>
- Expressions (Yes,
1+2
is also a valid statement) - Labeled statements (see: assignments) like
a: 2
Pro tip: Do you want to use the result of a statement as part of an expression? Just enclose the function call in square brackets [...]
E.g.: print [reverse #(1 2 3)]
Implementation[edit]
The main Arturo interpreter is written in the Nim language.
License[edit]
Arturo is released under the MIT/X11 License.
Todo[edit]
Reports:Tasks_not_implemented_in_Arturo
Pages in category "Arturo"
The following 144 pages are in this category, out of 144 total.
A
C
E
F
G
H
I
J
L
P
R
S
- Search a list
- SHA-1
- Sleep
- Sort an array of composite structures
- Sort an integer array
- Sorting algorithms/Bubble sort
- Sorting algorithms/Quicksort
- String case
- String concatenation
- String length
- String matching
- Substring
- Sum and product of an array
- Sum digits of an integer
- Sum multiples of 3 and 5
- Sum of a series
- Sum of squares
- Symmetric difference
- System time