Our website uses necessary cookies to enable basic functions and optional cookies to help us to enhance your user experience. Learn more about our cookie policy by clicking "Learn More".
Accept All Only Necessary Cookies
Operator icon

Operator 0.1.7



0.1.7
  • Oct 25, 2019
    Update date
  • Security
  • Everyone
  • Android 4.0+
    Android OS

About Operator

You like Javascript, functional programming and Android? Try Operator !

A simple Javascript transpiler program to code in a functional language looking like another famous functional programming language (beginning with an H.)

Each translation can be integrated in your web page via a single javascript script, provided you also installed jqMath (http://mathscribe.com/author/jqmath.html) -- with jQuery -- and Numeric Javascript (http://www.numericjs.com).

Like H., Operator

* is functional

* is little verbose

* understands binary operation's infix notation

Unlike H., Operator

* is not lazy in essence but infinite structures (lists, trees...) can be implemented

* is untyped

* doesn't understand sections with binary operators (you have to (\x->x+1) if you want to (+1)) but understands sections otherwise

* doesn't have a lower/upper cases distinction

* doesn't assume any priority for binary operations

* doesn't regard ' (simple quote) as a valid syntactic symbol

* is at a very early stage

Regarding purity, Operator works most of the time with immutable variables and structures but occasionnally (after the interact keyword) some states can be modified (content of an HTML document for example, see Demos).

PRIMITIVE BUILT INS:

Only +,-,*,/,%,==,<,>,substring,length are kept literally from javascript with the same meaning they have in javascript (+ is polymorphic for example). They are now regarded as functions of 2 arguments (except unary length and ternary substring).

The get method has become the ! function

Eg: var val=obj['black']+xs[0]; becomes val = (obj!"black")+(xs!0)

A javascript Array is called a List in Operator

Eg: var xs=[1,2]; becomes xs = List () 1 2 ()

A javascript Object is called a Map in Operator

Eg: var obj={'red':0,'black':1}; becomes obj = Map () "red" 0 "black" 1 ()

These are designed to be immutable and, as functions, the following is valid:

beg = List () 1 2 3

next = beg 4 5

xs = next 6 ()

, the last () giving the end of the structure (the first one creates an new instance). It would then be reckless to defined ys = next 7 () for the (impredictible) order in which xs and ys are processed would influence the result of xs!5 (which could give 6 or 7 accordingly). Instead, define a new immutable List: ys = List () 1 2 3 4 5 7 ()

Several useful document manipulation fonctions are available also:

:=, ::=, newline, value, math, input, button, interact (see Demos)

Several useful general fonctions are available also:

hex2char, dec2hex, hex2dec

The other javascript components can be accessed by the javascript keyword (see below).

And thats'all for the primitive built-ins!

FOREIGN BUILT-INS:

Foreign JAVASCRIPT:

Operator only knows a very small set of primitive keywords and operators but all the javascript functions can be accessed with the javascript keyword. Eg:

sqrt x = javascript (("Math.sqrt("+x) + ")")

or, better,

sqrt = javascript "var fun=function(x){return Math.sqrt(x);};fun"

or simply

sqrt = javascript "Math.sqrt"

Foreign JQMATH:

If the result of a computation satisfies the jqMath format (http://mathscribe.com/author/jqmath.html), it will be displayed as a mathematical formula. For example

main = "$355/113$"

will display a nice fraction on the screen, and on your web page if you install the script (sent by the "Send javascript" menu) and the jqMath script.

Foreign NUMERIC JAVASCRIPT:

All the numericjs functions (http://www.numericjs.com) can be used. For example

m=List () row1 row2 ()

row1=List () 2 5 ()

row2=List () 6 3 ()

determinant = javascript "numeric.det"

main=determinant m

will return -24. Note that there is no shortcut (as in sqrt above) for the definitions of the numeric functions of 2 or more variables. For example, with the first four lines above and

main = determinant (product m m)

you should define

product = javascript "var fun=function(x){return function(y){return numeric.dot(x,y);};};fun"

in order to get 576.

Show More

Additional APP Information

Latest Version

0.1.7

Uploaded by

Hamam Beeh

Requires Android

Android 4.0+

Available on

Content Rating

Everyone

Security Report

What's New in the Latest Version 0.1.7

Last updated on Oct 25, 2019

Nothing new, really

Show More
Security Check Completed
No Virus
No Spyware
No Malware
No Virus
No Spyware
No Malware
Package Name:joel.duet.opera
SHA-256:8666cb72e6c8a36957801a275ab117f1e9f613915b351e92741fa9650d791e95
SHA-1:68a029e9860fc8027d0eb30b5adb8db23d319a49
Show More
Verified by: APKPURE

Operator Screenshots

Operator posterOperator screenshot 1Operator screenshot 2Operator screenshot 3Operator screenshot 4Operator screenshot 5Operator screenshot 6Operator screenshot 7

Old Versions of Operator

APK
145.6 KBOct 25, 2019
Download
APK
119.4 KBSep 25, 2018
Download
APK
117.7 KBApr 17, 2016
Download
All Versions

Related Tags

Popular Articles In Last 24 Hours

Subscribe to APKPure
Be the first to get access to the early release, news, and guides of the best Android games and apps.
No thanks
Sign Up
Subscribed Successfully!
You're now subscribed to APKPure.