No Programming, No Life

プログラミング関連の話題や雑記

文法

GroovyとClojureでunlessを書いてみた

Groovy!(あいさつ) Clojure!(あいさつ)今回はClojureのマクロの練習も兼ねて、unlessを書いてみました。 unlessはifの逆です。(つまり、条件が偽なら実行するやつですね) まずはClojure test-isでテストなども書いてみました。 マクロって素敵。 次はGroov…

Clojureで文字列から動的に関数名を作って実行したいんだが・・・

リストの第一要素がシンボルなら関数として起動できるのかな?と思っていたんだがどうも違うらしい。とりあえず、printlnを例として。(symbol 文字列) でシンボルは作れるらしい。 $ clj Clojure 1.4.0 user=> (symbol? 'println) true user=> (= 'println (…

C#のNull許容型(Nullable)について

null 許容型は、System.Nullable 構造体のインスタンスらしい。 C#では型に ? をつけるとNullを許容するようにできる。 int? i = null; // nullが入れられるint型 ??演算子 ??演算子を使うと、型がnullでなかった場合は左辺、nullだったら右辺になる。 int y…

お前に本当のカリー化を見せてやろう、Groovyで

はじめに 思いの外話題になっているようなので、Groovyでちゃんとしたカリー化をする関数を書いてみました。ちょっとタイトルはあれですがお許し下さい。 こんな感じでいいんですよね?(ツッコミ大歓迎) ここでは、addが引数を3つ取って、加算するクロージ…

Erlang基礎文法ひとめぐり

はじめに ErlangかわいいよErlang。 ピリオド ピリオドは式の終わりを表す。 式. コメント コメント %から行末までがコメントになる。ブロックコメントはない。 % コメント %% コメント NOTE: 慣例として%%がよく使われる。 簡単な演算 1> 2 + 3 * 4. 14 2> …

Groovyならインタフェースはクロージャとマップで実装できる

はじめに インタフェースは機能仕様と実装を切り離す素晴らしいアイデアです。Javaではinterfaceキーワードでこの機能を提供しています。が、Javaだとこれを実装するのが意外と面倒くさいんですよね。 Javaだとこうなる Readable r = new Readable(){ int re…

Ruby基礎文法ひとめぐり

はじめに やっぱり日本人ならRubyをやっとくべきかなと思いとりあえずひとめぐりしてみることにした。文法がGroovyに似ていることもありこれまで "わかったつもり" でいたのを払拭していきたいと思います。 表示 print が改行なし puts が改行あり p は主に…

Groovy基礎文法最速マスター

この記事はGroovy基礎文法最速マスター | Think Twiceへ移管しました。

ScalaでListの値を変数にバインドする

こんな感じでバインドできるところはまさに関数型。

ScalaでHello World

とりあえず、Hello Worldが大事ですよね。 だいたいJavaと同じなんですが、型宣言の部分は objectという宣言でシングルトンが作成できる。 「変数名: 型」のようなる。 Scalaはすべてがオブジェクトということで戻り型もUnit*1としている。 関数も戻り値は :…