Enviar búsqueda
Cargar
CL21で色々なデータ構造を実装してみようとした
•
Descargar como ODP, PDF
•
2 recomendaciones
•
4,989 vistas
B
blackenedgold
Seguir
Lisp Meet Up Present by Shibuya.lisp #16での発表資料です。
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 21
Descargar ahora
Recomendados
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
Recomendados
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
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
Más contenido relacionado
La actualidad más candente
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
La actualidad más candente
(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
Último
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
Último
(8)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
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.
以上 質問あればどうぞ
Descargar ahora