Skip to content

Instantly share code, notes, and snippets.

@susisu
susisu / say.md
Last active October 26, 2024 15:30
非実用 say コマンド

非実用 say コマンド

おはようございます. @susisu2413 です. この記事は OUCC アドベントカレンダー 2014 1日目の記事です. が, 誰も登録されていなかったので急遽書くことになりました. しかたがないので適当な記事でハードルを下げつつお茶を濁そうと思います.

say コマンド

say コマンドをご存知でしょうか. Mac に標準で入っている音声読み上げコマンドです. 最近, レポート作成の疲れから say コマンドで遊んでみたら思いの外面白かったので記事にしてみました.

@susisu
susisu / palindromic_squares.txt
Last active August 29, 2015 14:10
first 100 palindromic squares
1 1
2 4
3 9
11 121
22 484
26 676
101 10201
111 12321
121 14641
202 40804
@susisu
susisu / ctor.js
Last active August 29, 2015 14:10
[[Construct]]
// 注意: アロー関数を排除できない
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;
}
@susisu
susisu / js_typeclass.md
Created December 11, 2014 16:22
JavaScript による型クラスの表現

JavaScript による型クラスの表現

この記事は 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
@susisu
susisu / functional_js_tsurai.md
Last active March 3, 2019 18:38
関数型 JavaScript がつらい

関数型 JavaScript がつらい

明けましておめでとうございます. @susisu2413 です.

この記事は OUCC アドベントカレンダー 2014 21日目の記事です. 昨日は @spring_raining 氏による大学のグループ開発でgitを布教する方法でした.

JavaScript での関数型処理

盛んに「関数型で脱アルゴリズム」などと叫ばれる昨今ですが, その真偽はさておき, 処理の単位として関数を用いるのは処理の一般化や再利用をする場合に役に立つことが多いです (たぶん). 関数型っぽい処理としては, 生の 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 = {};
@susisu
susisu / lambda.md
Created February 20, 2015 08:32
みんなだいすきラムダ式

みんなだいすきラムダ式.

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");
}
}