Submit Search
Upload
CL21で色々なデータ構造を実装してみようとした
•
Download as ODP, PDF
•
2 likes
•
4,989 views
B
blackenedgold
Follow
Lisp Meet Up Present by Shibuya.lisp #16での発表資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 21
Download now
Recommended
Common Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろう
blackenedgold
C++ Now 2012 report
C++ Now 2012 report
Akira Takahashi
Redux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElm
chuck h
Rx入門
Rx入門
Takaaki Suzuki
Rx Showcase
Rx Showcase
Takaaki Suzuki
それFluentdで! #fluentd
それFluentdで! #fluentd
Atsuko Shibuya
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
洋史 東平
XAML Standard
XAML Standard
m ishizaki
Recommended
Common Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろう
blackenedgold
C++ Now 2012 report
C++ Now 2012 report
Akira Takahashi
Redux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElm
chuck h
Rx入門
Rx入門
Takaaki Suzuki
Rx Showcase
Rx Showcase
Takaaki Suzuki
それFluentdで! #fluentd
それFluentdで! #fluentd
Atsuko Shibuya
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
洋史 東平
XAML Standard
XAML Standard
m ishizaki
Mishimasyk141025
Mishimasyk141025
Kazufumi Ohkawa
Real world lisp
Real world lisp
秀俊 伊藤
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Katsunori Kanda
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Nagi Teramo
データベース実践入門読書会スペシャル #nseg
データベース実践入門読書会スペシャル #nseg
ko ty
Rubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなし
Masaki Matsushita
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能
mametter
ChEMBLを使おう
ChEMBLを使おう
Kazufumi Ohkawa
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
Yohei Sasaki
20180620 pgx user_group#8
20180620 pgx user_group#8
Mio Takei
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
More Related Content
What's hot
Mishimasyk141025
Mishimasyk141025
Kazufumi Ohkawa
Real world lisp
Real world lisp
秀俊 伊藤
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Katsunori Kanda
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Nagi Teramo
データベース実践入門読書会スペシャル #nseg
データベース実践入門読書会スペシャル #nseg
ko ty
Rubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなし
Masaki Matsushita
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能
mametter
ChEMBLを使おう
ChEMBLを使おう
Kazufumi Ohkawa
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
Yohei Sasaki
20180620 pgx user_group#8
20180620 pgx user_group#8
Mio Takei
What's hot
(11)
Mishimasyk141025
Mishimasyk141025
Real world lisp
Real world lisp
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
データベース実践入門読書会スペシャル #nseg
データベース実践入門読書会スペシャル #nseg
Rubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなし
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能
ChEMBLを使おう
ChEMBLを使おう
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
20180620 pgx user_group#8
20180620 pgx user_group#8
Recently uploaded
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(11)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
CL21で色々なデータ構造を実装してみようとした
1.
CL21でデータ構造を実装してみよ うとした Lisp Meet Up
Presented by Shibuya.lisp #16 2014-04-22 #lispmeetup κeen(@blackenedgold)
2.
自己紹介 ● Twitter: κeen(@blackenedgold) ●
Github: KeenS ● ブログ: een Happy Hac ing Blogκ の κ ● 東大数学科の4年生 ● …就活中 ● Lisp, Ruby, OCaml, シェルスクリプトが好き ● CIMの開発してます ● いちおーCL21のコミッタ
3.
今日の内容 ➔ CL21について ➔ CL21のabstract-sequence ➔
CL21のabstract-hash-table ➔ cl21-data-collections ➔ queue ➔ heap ➔ map
4.
CL21って?
5.
CL21って? ● 神託によって作られた神の言語 ● Github:
fukamachi/cl21 ● 既存の関数をユーザーフレンドリーに書き換え – eltとかgetfとか ● リードテーブルも書き換え – {:hoge foo}でハッシュとか – 要はオレオレリテラル。 ● よく使うライブラリは標準バンドル – 正規表現 – プロセス など
6.
なんでCL21で実装したの? ● 今後にシフトしそう(少くとも自分は) ● 使用例作りたかった ●
ユーザーに拡張の余地を残してある – MOP – read-table – 一部の関数をメソッドとして再定義 – abstract-sequence – abstract-hash-table
7.
今日の内容 ➔ CL21について ➔ CL21のabstract-sequence ➔
CL21のabstract-hash-table ➔ cl21-data-collections ➔ queue ➔ heap ➔ map
8.
abstract-sequence ● シーケンスを抽象化したもの ● ほぼ他の言語の抽象クラスと同じイメージ 1.abstract-sequenceを継承したクラスを実装 2.いくつかのメソッドを実装する(結構いっぱ い) 3.いろいろなメソッドが自動的に使えるように なる
9.
今日の内容 ➔ CL21について ➔ CL21のabstract-sequence ➔
CL21のabstract-hash-table ➔ cl21-data-collections ➔ queue ➔ heap ➔ map
10.
abstract-hash-table ● ハッシュテーブルを抽象化したもの ● abstract-hash-tableとほぼ同じ 1.abstract-sequenceを継承したクラスを実装 2.いくつかのメソッドを実装する(少ない) 3.ユーザーが透過的に使えるようになる まだ開発途上な感じ
11.
今日の内容 ➔ CL21について ➔ CL21のabstract-sequence ➔
CL21のabstract-hash-table ➔ cl21-data-collections ➔ queue ➔ heap ➔ map
12.
cl21-data-collections ● Github KeenS/cl21-data-collectionに置く予定 ●
通称蟻本を参考に実装 ● cl21のstdlibに入るといいなー ● まだ全然実装終わってない
13.
今日の内容 ➔ CL21について ➔ CL21のabstract-sequence ➔
CL21のabstract-hash-table ➔ cl21-data-collections ➔ queue ➔ heap ➔ map
14.
queue ● FIFOのシーケンス – push-back,
popがO(1) ● abstract-sequenceを実装 ● 内部的にはリストで保持。一番最後のコンスを持 つことでpush-backをO(1)にする ● abstract-sequenceのテストケースを流用してテ スト ● テストケース77
15.
今日の内容 ➔ CL21について ➔ CL21のabstract-sequence ➔
CL21のabstract-hash-table ➔ cl21-data-collections ➔ queue ➔ heap ➔ map
16.
heap ● 最小(最大)値をルートに持つ2分木 ● 最小値の参照はO(1) ●
値の追加、値(最小値)の取り出しはO(log n) ● abstract-sequenceは実装してない – 最小値以外は順序がないためpush-backとか無理 ● 内部は木ではなく配列で保持
17.
今日の内容 ➔ CL21について ➔ CL21のabstract-sequence ➔
CL21のabstract-hash-table ➔ cl21-data-collections ➔ queue ➔ heap ➔ map
18.
map ● 平衡二分木 – OCamlのMapを写経したため、具体的な名前は不明 ●
自然と値がソートされて保持される ● 値の参照、追加、削除がO(log n) ● 他にも範囲で取得とか便利なクエリも可能(未実 装) ● abstract-hash-mapを継承 ● abstract-sequenceも継承出来る?
19.
その他のデータ構造(実装予定) ● priority-queue – ヒープのkey-value版 ●
deque – 双方向連結リスト – queueが可哀想なことになっちゃうなー ● (ordered-)set – mapのkey-valueじゃない版 ● range – 主にmapの範囲クエリ投げる用 ● Union-Find木 – 競技プログラミング専用?必要ある?
20.
感想 ● abstract-sequenceで実装するメソッド多い – 逆順でイテレートとか明かに相性が悪いのもある ●
やっぱpushとpopの挙動変更したい – heapもabstract-sequenceを実装したい – あるいはabstract-collection? ● テストの自動生成あっても良いかも ● abstract-hashの機能充実したい
21.
以上 質問あればどうぞ
Download now