このルールさえ押さえておけば、読んでいるコードが省略記法を使っていてもほぼ読めるようになります。
def concatAsString(a: Int, b: Int): String = {
val a_ = a.toString();
val b_ = b.toString();
scala> Iterator.iterate(0)(_ + 1).take(10).addString(new StringBuilder, ",") | |
res7: StringBuilder = 0,1,2,3,4,5,6,7,8,9 | |
scala> Stream.iterate(0)(_ + 1).take(10).addString(new StringBuilder, ",") | |
res8: StringBuilder = 0,? | |
scala> Iterator.iterate(0)(_ + 1).take(10).toString | |
res9: String = non-empty iterator | |
scala> Stream.iterate(0)(_ + 1).take(10).toString |
$ ruby -e 'C=`stty size`.scan(/\d+/)[1].to_i;S="\xf0\x9f\x8d\xa3";a={};puts "\033[2J";loop{a[rand(C)]=0;a.each{|x,o|;a[x]+=1;print "\033[#{o};#{x}H \033[#{a[x]};#{x}H#{S} \033[0;0H"};$stdout.flush;sleep 0.01}' |
package main | |
import ( | |
"math/rand" | |
"fmt" | |
"strings" | |
) | |
var words = []string { | |
"ボ", |
$ dig @202.216.229.30 a cloudfront.net. | |
; <<>> DiG 9.9.2-P2 <<>> @202.216.229.30 a cloudfront.net. | |
; (1 server found) | |
;; global options: +cmd | |
;; Got answer: | |
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32100 | |
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 | |
;; OPT PSEUDOSECTION: |
2015/01/15時点の情報です。
v0.1.3が計画されてるけど、initial releaseのv0.1.0からはbugfixや細かな修正がほとんどで、大きな進化はしてない。 コミットもあまり活発ではない。 もしかしたら、Facebook社内でprivateブランチを育てていてまとまったところで出してくるのかも。 (JS等に比べて)開発者人口の少ないOCaml実装というのも、プルリクが集まりにくくOSS的な加速的進化が起きにくい原因かもしれない。
@if (0) == (0) echo off | |
cscript //nologo /E:JScript "%~f0" %* | |
exit /b %ERRORLEVEL% | |
@end | |
var args = WScript.Arguments | |
if( args.length < 2 ){ | |
WScript.Echo("Usage: cscript ln.js [-s] FILENAME TARGET"); | |
WScript.Quit(1); | |
} |
class Foo {
type L[A] = Either[String, A]
foo[L](bar)
}
↓
import java.io.IOException; | |
import java.rmi.activation.ActivationException; | |
class Hoge { | |
static interface Function<T, E extends Throwable> { | |
public void apply(T hoge) throws E; | |
} | |