Given the following grammar:
Derive and give the parse trees for:
x ( (xy) | (xz) )* z
function avg(str)
total = 0
len = 0
for i in string.gmatch(str, "%d+") do
total = total + tonumber(i)
len = len + 1
end
return total/len
end
public class Final{
public static void main(String[] args){
String numbers = args[0];
String[] stringArray = numbers.split(",");
double total = 0;
for(String s : stringArray){
total += Integer.parseInt(s);
}
System.out.println(total/stringArray.length);
}
}
(apply + '(1 2 3))
(map - '(1 2 3))
(define foo (lambda (x)
(
(doSomething (car x))
(foo (cdr x))
)
)
(define avg (lambda (x)
(/
(apply +
(map string->number (regexp-split #rx"," x))
)
(length (regexp-split #rx"," x))
)
)
)
%%html
<html>
<body>
<input id="numbers" type="text" />
<button id="calculate">Calculate Average</button>
<div id="result">
</div>
<script>
document.querySelector("#calculate").addEventListener('click',
function(){
var strings = document.querySelector("#numbers").value.split(',')
var total = 0;
for(var i=0; i < strings.length; i++)
{
total += Number(strings[i])
}
document.querySelector("#result").innerHTML = total/strings.length
});
</script>
</body>
</html>
Language | Statement Ender | Line Comment Character |
---|---|---|
Lua | Whitespace | -- |
Java | ; (Semicolon) | // |
Scheme | ) (Right Parentheses) | ; (Semicolon) |
JavaScript | \n or ; | // |
Prolog | . | % |
Language | Variable Declaration | Default Scope |
---|---|---|
Lua | varName = val |
Global |
Java | type varName = val; |
Package-Private |
Scheme | (let ((varName val)) ...) |
N/A (Has to be define or let) |
JavaScript | var varName = val |
Global (without var) |
Language | If | for-each |
---|---|---|
Lua | if condition then expression end |
for key,value in pairs(table) do doSomething(table[key]) end |
Java | if(condition){ expression; } |
for( type t: Collection<type> c){ doSeomthing(t); } |
Scheme | (if (condition) (expression)) |
(map function list) |
JavaScript | if(condition){ expression; } |
array.forEach(function) |
Language | Defining a Function | Calling a Function |
---|---|---|
Lua | function f(x) functionBody end |
f(x) |
Java | returnType functionName(x) { } |
instance.functionName(x) |
Scheme | (define f (lambda (x) functionBody)) |
(f x) |
JavaScript | function f(x) {functionBody } |
f(x) |
Language | String->Int | String Concatentation | |
---|---|---|---|
Lua | tonumber(str) |
print(str) |
.. |
Java | Integer.parseInt(str); |
System.out.println(str); |
+ |
Scheme | (string->number str) |
(display str) |
str-join |
JavaScript | Number(str) |
console.log(str) * |
+ |
Language | Array Length | Index | Multidimensional Array |
---|---|---|---|
Lua | #array |
array[i] |
a = {} for i,k in pairs(a) do a[i] = {} |
Java | array.length |
array[i] |
a = new type[len1][] |
Scheme | (length list) |
(list-ref list i) |
(list (list ) ... (list ) ) |
JavaScript | array.length |
array[i] |
array = newArray() array.forEach(function(element){ return new Array()}) |