Релиз 1.4.0

This commit is contained in:
Victor 2019-01-06 16:46:38 +02:00
parent 62525e08e9
commit 2a94fc1759

View File

@ -1,14 +1,20 @@
# OwnLang # OwnLang
[![Build Status](https://travis-ci.org/aNNiMON/Own-Programming-Language-Tutorial.svg?branch=latest)](https://travis-ci.org/aNNiMON/Own-Programming-Language-Tutorial) [![Build Status](https://travis-ci.org/aNNiMON/Own-Programming-Language-Tutorial.svg?branch=latest)](https://travis-ci.org/aNNiMON/Own-Programming-Language-Tutorial)
[![SonarCloud Status](https://sonarcloud.io/api/project_badges/measure?project=aNNiMON_Own-Programming-Language-Tutorial&metric=alert_status)](https://sonarcloud.io/dashboard?id=aNNiMON_Own-Programming-Language-Tutorial)
[![SonarCloud Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=aNNiMON_Own-Programming-Language-Tutorial&metric=sqale_rating)](https://sonarcloud.io/dashboard/?id=aNNiMON_Own-Programming-Language-Tutorial) OwnLang - dynamic functional programming language inspired by Scala and Python. Available for PC, Android and Java ME devices.
## Installing
| Free | Pro | Desktop | | Free | Pro | Desktop |
| :--: | :-: | :-----: | | :--: | :-: | :-----: |
| [![Free](https://developer.android.com/images/brand/en_generic_rgb_wo_45.png)](https://play.google.com/store/apps/details?id=com.annimon.ownlang.free) | [![Pro](https://developer.android.com/images/brand/en_generic_rgb_wo_45.png)](https://play.google.com/store/apps/details?id=com.annimon.ownlang) | [v1.3.0](https://github.com/aNNiMON/Own-Programming-Language-Tutorial/releases/tag/v1.3.0) | [![Free](https://developer.android.com/images/brand/en_generic_rgb_wo_45.png)](https://play.google.com/store/apps/details?id=com.annimon.ownlang.free) | [![Pro](https://developer.android.com/images/brand/en_generic_rgb_wo_45.png)](https://play.google.com/store/apps/details?id=com.annimon.ownlang) | [v1.4.0](https://github.com/aNNiMON/Own-Programming-Language-Tutorial/releases/tag/v1.4.0)
OwnLang - dynamic functional programming language inspired by Scala and Python. Available for PC, Android and Java ME devices. Also available as AUR package:
```
yay -S ownlang
```
## Key features ## Key features
@ -61,8 +67,7 @@ def fizzbuzz(limit = 100) {
Operate data in functional style. Operate data in functional style.
```scala ```scala
use "std" use ["std", "functional"]
use "functional"
nums = [1,2,3,4,5,6,7,8,9,10] nums = [1,2,3,4,5,6,7,8,9,10]
nums = filter(nums, def(x) = x % 2 == 0) nums = filter(nums, def(x) = x % 2 == 0)
@ -72,6 +77,11 @@ foreach(squares, ::echo)
// Sum of squares // Sum of squares
sum = reduce(squares, 0, def(x, y) = x + y) sum = reduce(squares, 0, def(x, y) = x + y)
println "Sum: " + sum println "Sum: " + sum
// Same using stream
println "Sum: " + stream(range(1, 11))
.filter(def(x) = x % 2 == 0)
.map(def(x) = x * x)
.reduce(0, def(x, y) = x + y)
``` ```
#### Operator overloading #### Operator overloading
@ -79,11 +89,9 @@ println "Sum: " + sum
Why not? Why not?
```scala ```scala
use "std" use ["std", "types", "math"]
use "types"
use "math"
def `..`(a, b) = range(a, b - 1) def `..`(a, b) = range(a, b)
def `**`(a, b) = int(pow(a, b)) def `**`(a, b) = int(pow(a, b))
for y : 1 .. 10 { for y : 1 .. 10 {
println sprintf("2 ^ %d = %d", y, 2 ** y) println sprintf("2 ^ %d = %d", y, 2 ** y)
@ -130,8 +138,6 @@ def patch_callback(v) {
Build using Gradle `./gradlew dist` Build using Gradle `./gradlew dist`
or Ant `ant clean pack`
or take a look to [latest release](https://github.com/aNNiMON/Own-Programming-Language-Tutorial/releases/latest) for binaries. or take a look to [latest release](https://github.com/aNNiMON/Own-Programming-Language-Tutorial/releases/latest) for binaries.