おはようございます. @susisu2413 です. この記事は OUCC アドベントカレンダー 2014 1日目の記事です. が, 誰も登録されていなかったので急遽書くことになりました. しかたがないので適当な記事でハードルを下げつつお茶を濁そうと思います.
say
コマンドをご存知でしょうか. Mac に標準で入っている音声読み上げコマンドです.
最近, レポート作成の疲れから say
コマンドで遊んでみたら思いの外面白かったので記事にしてみました.
おはようございます. @susisu2413 です. この記事は OUCC アドベントカレンダー 2014 1日目の記事です. が, 誰も登録されていなかったので急遽書くことになりました. しかたがないので適当な記事でハードルを下げつつお茶を濁そうと思います.
say
コマンドをご存知でしょうか. Mac に標準で入っている音声読み上げコマンドです.
最近, レポート作成の疲れから say
コマンドで遊んでみたら思いの外面白かったので記事にしてみました.
1 1 | |
2 4 | |
3 9 | |
11 121 | |
22 484 | |
26 676 | |
101 10201 | |
111 12321 | |
121 14641 | |
202 40804 |
// 注意: アロー関数を排除できない | |
function ctor (Ctor) { | |
return function () { | |
if(typeof Ctor !== "function") { | |
throw new TypeError(typeof Ctor + " is not a function"); | |
} | |
var proto = Ctor.prototype; | |
if (proto === null || typeof proto !== "object") { | |
proto = Object.prototype; | |
} |
この記事は OUCC アドベントカレンダー 2014 12日目の記事です. 岡山大学サイクリング部ではなく, 大阪大学コンピュータクラブです. 昨日は @klta6154 さんによるマスタリングTCP/IP OpenFlow編読みました記でした.
毎度ありがとうございます. (@susisu2413) です.
この記事では JavaScript を使って, Haskell などの言語に存在する "型クラス" のようなものを書いて遊んでみます. ちょくちょく Haskell が登場しますが, Haskell の知識がなくてもある程度読めるように配慮したつもりです. ただ, 流石に JavaScript の説明をしながら型クラスの説明をするのは地獄なので, JavaScript がある程度わかることを前提で書いています.
say -v Cellos aki no tah no ka ri ho no e o oh oh wa gah ko ro mo de tsu you ni nu reh tsu tsu | |
say -v Cellos ha ru su ghee te na tsu ki ni k ra ah shi ko ro mo ho su cho oh ame no ka goo yama | |
say -v Cellos a shi be ki no yama dory no oh oh no na gah na gah shi yo he toe ri ka mo ne m | |
say -v Cellos tah go no woo ra woo chi ee de mi rae eh bar foo ji no tah ka ne yu ki wa foo ri tsu tsu | |
say -v Cellos o coo yama momiji na coo shi ka ah no ko eh key coo toe ki zo aki ka na shi key | |
say -v Cellos ka sa sa ghee what a sell hash knee oak shi mo no shi ro ki o mi reh bar yo fu kae ni kae roo |
明けましておめでとうございます. @susisu2413 です.
この記事は OUCC アドベントカレンダー 2014 21日目の記事です. 昨日は @spring_raining 氏による大学のグループ開発でgitを布教する方法でした.
盛んに「関数型で脱アルゴリズム」などと叫ばれる昨今ですが, その真偽はさておき,
処理の単位として関数を用いるのは処理の一般化や再利用をする場合に役に立つことが多いです (たぶん).
関数型っぽい処理としては, 生の JavaScript では Array
のメソッドに map
, filter
, reduce
などがあります
class Test { | |
static function main() { | |
trace("Haxe is great!"); | |
var nya : Foo = new Foo(function (x : String) : Void { | |
trace(x); | |
// btw | |
nya; | |
}); | |
nya.say(); | |
} |
/* | |
* Reference: | |
* http://wasabiz.hatenablog.com/entry/20110118/1295335821 | |
* http://code.activestate.com/recipes/496691/ | |
*/ | |
function TailRecursive(func) { | |
this.func = func; | |
this.isFirstCall = true; | |
this.continueKey = {}; |
みんなだいすきラムダ式.
function Lambda(argName, body) {
this.argName = argName;
this.body = body;
}
Lambda.prototype.eval = function (env) {
var argName = this.argName;
function makeTweet(parsers, scoreStr) { | |
var score = readScore(parsers, scoreStr); | |
if (score !== null) { | |
return "<header>" + score.toString(); | |
} | |
else { | |
throw new Error("error"); | |
} | |
} |