An AJAX service which runs a given script. The result is returned as JSONP.
http://api.dan.co.jp/lleval.cgi?c=callback&s=source
When l=language is ommited, #!
is used.
JS code below illustrates how to use it.
(function(d){
LLEval = function(src, dst, ll){
runJSON(ll || 'll', function(json){
dst.innerHTML = '';
dst.appendChild(json2dl(json));
}, src.value, ll);
};
runJSON = function(name, func, src, ll){
if (! this['JSONP']) JSONP = {};
JSONP[name] = func;
(function(uri){
var s = d.createElement('script');
s.charset = 'UTF-8';
s.src = uri + '&s=' + encodeURIComponent(src);
if (ll) s.src += '&l=' + encodeURIComponent(ll)
s.id = s.src;
d.body.appendChild(s);
})('http://api.dan.co.jp/lleval.cgi?c=JSONP.' + name, src, ll);
};
var appendText = function(e, t){
e.appendChild(d.createTextNode(t));
};
json2dl = function(json){
var keys = [];
for (var k in json) keys[keys.length] = k;
keys.sort();
var dl = d.createElement('dl');
dl.style.width = '100%';
for (var i = 0, l = keys.length; i < l; i++){
var k = keys[i]; var v = json[k];
var dt = d.createElement('dt');
appendText(dt, k);
dl.appendChild(dt);
var dd = d.createElement('dd');
appendText(dd, v);
if (keys[i].match(/^std/)){
dd.style.fontFamily = 'monospace';
dd.style.whiteSpace = 'pre';
}
dl.appendChild(dd);
}
return dl;
};
})(document);
To get a list of languages suppoted, access
http://api.dan.co.jp/lleval.cgi?q=1
askLanguages = function(dst){
if (! this['JSONP']) JSONP = {};
JSONP['q'] = function(json){
dst.innerHTML = '';
dst.appendChild(json2dl(json));
};
(function(d, uri){
var s = d.createElement('script');
s.charset = 'UTF-8';
s.src = uri + '&q=1';
s.id = s.src;
d.body.appendChild(s);
})(document, 'http://api.dan.co.jp/lleval.cgi?c=JSONP.q');
};
#!/usr/bin/perl
use LWP::Simple; print get("http://www.google.com/");
Whatsoever.
Enjoy!
Dan the LL Monger
Best Supported. As a matter of fact this service is written in perl. Not only core modules but also popular modules like LWP are available
print $_ % 15
? $_ % 5
? $_ % 3
? $_
: 'Fizz'
: "Buzz"
: q{FizzBuzz}, "\n"
for ( 1 .. 30 );
Very slow. So slow I gave two seconds.
[1..30].map({
$_ % 15 ?? $_ % 5 ?? $_ % 3 ?? $_ !! 'Fizz' !! 'Buzz' !! 'FizzBuzz'
}).join("\n").say;
bwbasic does not support shebang but this service does (kinda).
10 FOR N=1 TO 30 20 LET F$ = "" 30 IF N MOD 3 = 0 THEN LET F$ = "Fizz" 40 IF N MOD 5 = 0 THEN LET F$ = F$ + "Buzz" 50 IF F$ = "" THEN LET F$ = N 60 PRINT F$ 70 NEXT N 80 QUIT
You need to specify #!/usr/bin/emacs --script if
you want to use shebang.
(print (mapcar (lambda (num)
(cond
((= (% num 15) 0) "FizzBuzz")
((= (% num 3) 0) "Fizz")
((= (% num 5) 0) "Buzz")
(t num)))
'( 1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30)))
You need to specify #!/usr/bin/ecl -shell if you
want to use shebang.
(print (loop for i from 1 to 30 collect (cond ((= 0 (mod i 15)) "FizzBuzz") ((= 0 (mod i 3)) "Fizz") ((= 0 (mod i 5)) "Buzz") (t i))))
(use srfi-1)
(for-each
print
(map
(lambda (x)
(cond
((= (modulo x 15) 0) "FizzBuzz")
((= (modulo x 5) 0) "Buzz")
((= (modulo x 3) 0) "Fizz")
(else x)))
(iota 30 1)))
main = mapM_ (putStrLn . fizzbuzz) [1..30]
fizzbuzz n
= if or $ map (\s->length s /= 0) [fizz, buzz]
then fizz ++ buzz
else show n
where fizz = if mod n 3 == 0 then "Fizz" else ""
buzz = if mod n 5 == 0 then "Buzz" else ""
Range
1 to(30) map(i,
if(i % 15 == 0, "FizzBuzz",
if(i % 3 == 0, "Fizz",
if(i % 5 == 0, "Buzz",
i)))) println
for (var i = 0; i <= 30; i++){
print (
i % 15
? i % 5
? i % 3
? i : 'Fizz'
: 'Buzz'
: 'FizzBuzz'
);
}
function fizzbuzz(n)
if n % 15 == 0 then
return "FizzBuzz"
elseif n % 3 == 0 then
return "Fizz"
elseif n % 5 == 0 then
return "Buzz"
else
return n
end
end
for i=1,30 do
print(fizzbuzz(i))
end
let fizzbuzz n =
let fizz = if n mod 3 == 0 then "Fizz" else "" in
let buzz = if n mod 5 == 0 then "Buzz" else "" in
if [] != List.filter (fun s -> String.length s != 0) [fizz;buzz]
then fizz ^ buzz
else string_of_int n
let puts s = print_string( s ^ "\n");;
for i = 1 to 30 do
puts (fizzbuzz i)
done;;
<?php
for ($i=1; $i <= 30; $i++){
echo $i % 15 ?
( $i % 5 ?
( $i % 3 ? $i : "Fizz" )
: "Buzz")
: "FizzBuzz";
echo "\n";
}
?>
def fizzbuzz(n):
for i in range(1, n+1):
if i % 15 == 0: yield 'FizzBuzz'
elif i % 5 == 0: yield 'Buzz'
elif i % 3 == 0: yield 'Fizz'
else: yield i
for x in fizzbuzz(30): print x
1.upto(30) do |i| s = [ [:Fizz][ i % 3 ], [:Buzz][ i % 5 ] ] * ''; puts s[1] ? s : i end
gs does not support shebang but this service does (kinda).
1 1 30
{ dup 15 mod 0 eq {(FizzBuzz)}
{ dup 3 mod 0 eq {(Fizz)}
{ dup 5 mod 0 eq {(Buzz)}
if} ifelse } ifelse = clear }
for
for {set i 1} {$i <= 30} {incr i} {
if {![expr $i % 3] && ![expr $i % 5]} {
puts "FizzBuzz"
} elseif {![expr $i % 3]} {
puts "Fizz"
} elseif {![expr $i % 5]} {
puts "Buzz"
} else {
puts $i
}
}