タグ

JavaScriptとRubyに関するducky19999のブックマーク (2)

  • 橋本商会 » Ruby上に並列言語拡張Lindaを実装してWebSocket/Cometで使えるようにした

    Lindaは1990年ごろに出来た言語。 タプルスペースという共有メモリ空間でタプル(オブジェクト)を共有して、in/out/rd/inp/rdpという命令で操作する事で大抵の並列処理が記述できるという物。 仕様は単純なんだけどセマフォなどのロック機構やジョブキューも超簡単に記述できる。いわば分散並列処理のための最小セット。 既にCやJavaの実装があり、Rubyでも咳さんのRindaがある。 で、今回作ったLinda gemではタプルのマッチング判定とオンメモリのタプルスペースの読み書き機能と、それぞれのテストコードしか実装されていない。 複数のプロセスからタプルスペースに接続して読み書きする機能は実装されていない。 マッチングは配列タプルは要素の前方一致、Hashタプルは自身のKeyとValueが相手に全部含まれていればtrueとしている。 Linda RocketIO Linda g

  • 配列の差分をとりたい - ヨーキョクデイ

    ある状態を配列で持つことにして、ある状態と別のある状態を比較し、消えた要素と現れた要素を知りたい(ただしどのインデックスの要素が消えたりしたのかは気にしない)という状況を想定。各配列は重複する要素を持たないものとする。 Ruby の配列は集合のように扱うことができることを活用すると、単純にこんな感じで書ける。 def array_diff(older, newer) # 引数はどっちも配列 removed = older - newer # 配列 older から配列 newer に存在する要素を除去 added = newer - older # 配列 newer から配列 older に存在する要素を除去 return removed, added # 消えた要素からなる配列と現れた要素からなる配列を返す end p array_diff(["a", "b", "c", "d", "e

    配列の差分をとりたい - ヨーキョクデイ
  • 1