JVM Kotlin

[Kotlin] Kotlinで末尾再帰最適化 その2

その1 ではtailrecを使って、フィボナッチ数を生成してみたけど、実際最適化されているのだろうか? ホントか? 今度は実行用のjarではなく、クラスファイル単体を作成する。 $ kotlinc fibonacci.kt とすると、FibonacciKt.clas...

Kotlin

[Kotlin] Kotlinで末尾再帰最適化 その1

Kotlinでは関数にtailrec宣言を付けることによって、末尾再帰最適化がされる(一部制限があるようですが)!とのことなので、早速やってみます。 何はともあれ、フィボナッチ数。

JavaScript

[JavaScript] 並列処理と再帰呼び出しで関数受け取り

明けましておめでとうございます。2019年になってしまいましたね。 さて、 [JavaScript] 並列処理と再帰呼び出し で関数を受け取るようにすれば、汎用的にできるんじゃっ、ということだったので、やってみました。

Java

[Java] enumとDBに格納するコードを対応付けたい

enum拡張 Javaのenumを拡張して、何らかの値を持たせることはよくあると思う。 特にDBに格納するコードとenumを対応付けたくなる。 そういう場合は、コンストラクタに引数を持たせて初期化する。 Fruits.java enum Fruits implem...

bash unix シェルスクリプト

[bash] ヒアドキュメントでquit の続き

標準入力を終了させる [bash] ヒアドキュメントでquit で、ヒアドキュメントを使ってquitコマンドを送り込む方法を書いたけど、よく考えたらquitを書かなくても標準入力を終了させれば、bcを終了させることができるのだった。 $ cat run.sh #!/bin/s...

JavaScript

[JavaScript] Promiseを使ったsleep

JavaScriptのasync/awaitを調べていたら、MDNにsleepを簡潔に書けそうな例があった。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Using_promises sleepの...

JavaScript

[JavaScript] 並列処理と再帰呼び出し

JavaScriptは基本的にイベントハンドラ内で動作しているイメージなので、シングルスレッドが前提。 そんな中で複数のループ処理を同時に動かしたいときに、うまく書けないかなーと思ってやってみた結果。 試した環境はnode.js v10.13.0 普通のループ ものす...