New sample script - primes.rhai.
This commit is contained in:
parent
da440a5dff
commit
91317c0d3e
40
README.md
40
README.md
@ -89,23 +89,27 @@ Example Scripts
|
|||||||
|
|
||||||
There are also a number of examples scripts that showcase Rhai's features, all in the `scripts` folder:
|
There are also a number of examples scripts that showcase Rhai's features, all in the `scripts` folder:
|
||||||
|
|
||||||
| Script | Description |
|
| Language feature scripts | Description |
|
||||||
| --------------------- | ------------------------------------------------------------- |
|
| ------------------------ | ------------------------------------------------------------- |
|
||||||
| `array.rhai` | arrays in Rhai |
|
| `array.rhai` | arrays in Rhai |
|
||||||
| `assignment.rhai` | variable declarations |
|
| `assignment.rhai` | variable declarations |
|
||||||
| `comments.rhai` | just comments |
|
| `comments.rhai` | just comments |
|
||||||
| `for1.rhai` | for loops |
|
| `for1.rhai` | for loops |
|
||||||
| `function_decl1.rhai` | a function without parameters |
|
| `function_decl1.rhai` | a function without parameters |
|
||||||
| `function_decl2.rhai` | a function with two parameters |
|
| `function_decl2.rhai` | a function with two parameters |
|
||||||
| `function_decl3.rhai` | a function with many parameters |
|
| `function_decl3.rhai` | a function with many parameters |
|
||||||
| `if1.rhai` | if example |
|
| `if1.rhai` | if example |
|
||||||
| `loop.rhai` | endless loop in Rhai, this example emulates a do..while cycle |
|
| `loop.rhai` | endless loop in Rhai, this example emulates a do..while cycle |
|
||||||
| `op1.rhai` | just a simple addition |
|
| `op1.rhai` | just a simple addition |
|
||||||
| `op2.rhai` | simple addition and multiplication |
|
| `op2.rhai` | simple addition and multiplication |
|
||||||
| `op3.rhai` | change evaluation order with parenthesis |
|
| `op3.rhai` | change evaluation order with parenthesis |
|
||||||
| `speed_test.rhai` | a simple program to measure the speed of Rhai's interpreter |
|
| `string.rhai` | string operations |
|
||||||
| `string.rhai` | string operations |
|
| `while.rhai` | while loop |
|
||||||
| `while.rhai` | while loop |
|
|
||||||
|
| Example scripts | Description |
|
||||||
|
| ----------------- | ----------------------------------------------------------------- |
|
||||||
|
| `speed_test.rhai` | a simple program to measure the speed of Rhai's interpreter |
|
||||||
|
| `primes.rhai` | use Sieve of Eratosthenes to find all primes smaller than a limit |
|
||||||
|
|
||||||
To run the scripts, either make a tiny program or use of the `rhai_runner` example:
|
To run the scripts, either make a tiny program or use of the `rhai_runner` example:
|
||||||
|
|
||||||
@ -916,7 +920,7 @@ for x in array {
|
|||||||
if x == 42 { break; }
|
if x == 42 { break; }
|
||||||
}
|
}
|
||||||
|
|
||||||
// The 'range' function allows iterating from first..last-1
|
// The 'range' function allows iterating from first..last
|
||||||
for x in range(0, 50) {
|
for x in range(0, 50) {
|
||||||
print(x);
|
print(x);
|
||||||
if x == 42 { break; }
|
if x == 42 { break; }
|
||||||
|
28
scripts/primes.rhai
Normal file
28
scripts/primes.rhai
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
// This is a script to calculate prime numbers.
|
||||||
|
|
||||||
|
let MAX_NUMBER_TO_CHECK = 10000; // 1229 primes
|
||||||
|
|
||||||
|
let prime_mask = [];
|
||||||
|
prime_mask.pad(MAX_NUMBER_TO_CHECK, true);
|
||||||
|
|
||||||
|
prime_mask[0] = false;
|
||||||
|
prime_mask[1] = false;
|
||||||
|
|
||||||
|
let total_primes_found = 0;
|
||||||
|
|
||||||
|
for p in range(2, MAX_NUMBER_TO_CHECK) {
|
||||||
|
if prime_mask[p] {
|
||||||
|
print(p);
|
||||||
|
|
||||||
|
total_primes_found += 1;
|
||||||
|
let i = 2 * p;
|
||||||
|
|
||||||
|
while i < MAX_NUMBER_TO_CHECK {
|
||||||
|
prime_mask[i] = false;
|
||||||
|
i += p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print("Total " + total_primes_found + " primes.");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user