Clojureのloop-recurを、Rubyでやった。Elixirの古いversionにも有ったらしい。 末尾再帰の最適化 (TCO, tail call optimization) が出来ないsystemだと、助かるみたい。Ruby 2.0.0とかClojureみたいな。 def factorial n cloop n, 1 do |n, acc| if n == 0 acc else recur n - 1, acc * n end end end みたいに使ふ。 instance_evalしか知らなくて、instance_execを見附け出すのに一番時間が掛った。アホだ。 Rubyだと、末尾再帰をloopに変換するmethod実装例とかも、検索すれば見附かるけど。 cf. Rubyで末尾再帰最適化をする。 - athosの日記 cf. Rubyの末尾再帰最適化を理解する 因みに多
neo4jとは neo4jとはNeo Technologyが開発したJavaベースのグラフデータベースです。(日本語ページ) グラフデータベースは、一つ一つのデータを行で表現するリレーショナルデータベースと異なり、 ノード(頂点)、リレーションシップ(エッジ)、プロパティ(属性)という3つの基本構成要素でデータを格納します。 グラフデータベースが有用なのはTwitterやFacebookのように、フォローや友人関係を扱う時です。 「友人のそのまた友人を探す」や「任意の二人を選択し、最短の関係(パス)を探す」などの問題を解こうとしたとき、 リレーショナルデータベースでは関係の探索に大量の結合演算が必要になりますが、 グラフ構造をそのまま格納しているグラフデータベースなら高速に処理することが可能です。 neo4jはオープンソースですが、ライセンスはAGPLv3なので、商用利用などの際はライセン
こちらに追記しようとしたのですが見にくかったので別記事にしました ES6での配列の連結方法になります https://qiita.com/kaz2ngt/items/c03625587bf398b6f81a 以下過去記事 投稿テストも兼ねたメモ 一般的に配列の連結はconcatを用いるが、配列に配列を継ぎ足していくような処理だとconcatでは毎回配列を生成しているのがきになり、他の手段を調べてみるとArray.prototype.push.applyというものがあったためメモ 実行ファイル var a = [0, 1, 2, 3], b = [4, 5, 6, 7], i, count = 10000; console.time(); for (i = 0; i < count; i++) { a = a.concat(b); } console.timeEnd();
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く