September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -0,0 +1,26 @@
|
|||
' Short-circuit evaluation
|
||||
FUNCTION a(f)
|
||||
PRINT "FUNCTION a"
|
||||
RETURN f
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION b(f)
|
||||
PRINT "FUNCTION b"
|
||||
RETURN f
|
||||
END FUNCTION
|
||||
|
||||
PRINT "FALSE and TRUE"
|
||||
x = a(FALSE) AND b(TRUE)
|
||||
PRINT x
|
||||
|
||||
PRINT "TRUE and TRUE"
|
||||
x = a(TRUE) AND b(TRUE)
|
||||
PRINT x
|
||||
|
||||
PRINT "FALSE or FALSE"
|
||||
y = a(FALSE) OR b(FALSE)
|
||||
PRINT y
|
||||
|
||||
PRINT "TRUE or FALSE"
|
||||
y = a(TRUE) OR b(FALSE)
|
||||
PRINT y
|
||||
|
|
@ -1,21 +1,20 @@
|
|||
#import system.
|
||||
#import system'routines.
|
||||
#import extensions.
|
||||
import system'routines.
|
||||
import extensions.
|
||||
|
||||
#symbol a = x [ console writeLine:"a". ^ x. ].
|
||||
symbol a = (:x)[ console writeLine:"a". ^ x. ].
|
||||
|
||||
#symbol b = x [ console writeLine:"b". ^ x. ].
|
||||
symbol b = (:x)[ console writeLine:"b". ^ x. ].
|
||||
|
||||
#symbol program =
|
||||
program =
|
||||
[
|
||||
(false, true) run &each: i
|
||||
(false, true) forEach(:i)
|
||||
[
|
||||
(false, true) run &each: j
|
||||
(false, true) forEach(:j)
|
||||
[
|
||||
console writeLine:i:" and ":j:" = ":(a eval:i and:[ b eval:j ]).
|
||||
console printLine(i," and ",j," = ",a eval:i && $(b eval:j)).
|
||||
|
||||
console writeLine.
|
||||
console writeLine:i:" or ":j:" = ":(a eval:i or:[ b eval:j ]).
|
||||
console printLine(i," or ",j," = ",a eval:i || $(b eval:j)).
|
||||
console writeLine.
|
||||
].
|
||||
].
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
function a(bool) {
|
||||
console.log('a -->', bool);
|
||||
|
||||
return bool;
|
||||
}
|
||||
|
||||
function b(bool) {
|
||||
console.log('b -->', bool);
|
||||
|
||||
return bool;
|
||||
}
|
||||
|
||||
var x = a(false) && b(true),
|
||||
y = a(true) || b(false);
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
a --> false
|
||||
a --> true
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
// version 1.1.2
|
||||
|
||||
fun a(v: Boolean): Boolean {
|
||||
println("'a' called")
|
||||
return v
|
||||
}
|
||||
|
||||
fun b(v: Boolean): Boolean {
|
||||
println("'b' called")
|
||||
return v
|
||||
}
|
||||
|
||||
fun main(args: Array<String>){
|
||||
val pairs = arrayOf(Pair(true, true), Pair(true, false), Pair(false, true), Pair(false, false))
|
||||
for (pair in pairs) {
|
||||
val x = a(pair.first) && b(pair.second)
|
||||
println("${pair.first} && ${pair.second} = $x")
|
||||
val y = a(pair.first) || b(pair.second)
|
||||
println("${pair.first} || ${pair.second} = $y")
|
||||
println()
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
Parse Version v
|
||||
Say 'Version='v
|
||||
If a() | b() Then Say 'a and b are true'
|
||||
If \a() | b() Then Say 'Surprise'
|
||||
Else Say 'ok'
|
||||
If a(), b() Then Say 'a is true'
|
||||
If \a(), b() Then Say 'Surprise'
|
||||
Else Say 'ok: \a() is false'
|
||||
Select
|
||||
When \a(), b() Then Say 'Surprise'
|
||||
Otherwise Say 'ok: \a() is false (Select)'
|
||||
End
|
||||
Exit
|
||||
a: Say 'a returns .true'; Return .true
|
||||
b: Say 'b returns 1'; Return 1
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
BEGIN
|
||||
|
||||
BOOLEAN PROCEDURE A(BOOL); BOOLEAN BOOL;
|
||||
BEGIN OUTCHAR('A'); A := BOOL;
|
||||
END A;
|
||||
|
||||
BOOLEAN PROCEDURE B(BOOL); BOOLEAN BOOL;
|
||||
BEGIN OUTCHAR('B'); B := BOOL;
|
||||
END B;
|
||||
|
||||
PROCEDURE OUTBOOL(BOOL); BOOLEAN BOOL;
|
||||
OUTCHAR(IF BOOL THEN 'T' ELSE 'F');
|
||||
|
||||
PROCEDURE TEST;
|
||||
BEGIN
|
||||
PROCEDURE ANDTEST;
|
||||
BEGIN
|
||||
BOOLEAN X, Y, Z;
|
||||
FOR X := TRUE, FALSE DO
|
||||
FOR Y := TRUE, FALSE DO
|
||||
BEGIN
|
||||
OUTTEXT("A("); OUTBOOL(X);
|
||||
OUTTEXT(") AND ");
|
||||
OUTTEXT("B("); OUTBOOL(Y);
|
||||
OUTTEXT("): ");
|
||||
Z := A(X) AND THEN B(Y);
|
||||
OUTIMAGE;
|
||||
END;
|
||||
END ANDTEST;
|
||||
|
||||
PROCEDURE ORTEST;
|
||||
BEGIN
|
||||
BOOLEAN X, Y, Z;
|
||||
FOR X := TRUE, FALSE DO
|
||||
FOR Y := TRUE, FALSE DO
|
||||
BEGIN
|
||||
OUTTEXT("A("); OUTBOOL(X);
|
||||
OUTTEXT(") OR ");
|
||||
OUTTEXT("B("); OUTBOOL(Y);
|
||||
OUTTEXT("): ");
|
||||
Z := A(X) OR ELSE B(Y);
|
||||
OUTIMAGE;
|
||||
END;
|
||||
END ORTEST;
|
||||
|
||||
ANDTEST;
|
||||
ORTEST;
|
||||
|
||||
END TEST;
|
||||
|
||||
TEST;
|
||||
END.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
fcn a(b){self.fcn.println(b); b}
|
||||
fcn b(b){self.fcn.println(b); b}
|
||||
Loading…
Add table
Add a link
Reference in a new issue