SlideShare una empresa de Scribd logo
1 de 13
Common LispでAndroidアプリ

チーム「人造エイリアンLisper」
金(κeen@blackenedgold)
自己紹介
●

数学科3年

●

プログラミング歴2年

●

Ruby, Common Lisp

●

Android開発経験 なし

●

Javaもあんまり無い

●

AIに少し興味あり
目的
●

Common LispでAndroidアプリを作れるらしい

●

moclって言うらしい

●

試したい

●

でも多分バグ(俗称地雷)がある

●

それでも!突き進む!
_人人人人人人_
> 突然の死 <
 ̄Y^Y^Y^Y^Y ̄
●

●
●

●

●

●
●

とりあえず書式面倒だから便利なライブラリで省略しよう →cl-annot
が動かない
じゃあ、そのままでTwitterクライアント作ろう→ cl-twitterが動かない
仕方ない、OAuthだけやってくれたら後は自分で… → cl-oauthが動か
ない
じゃあもうOAuth自分で実装するよ。HTTPお願い → drakmaが動かな
い
じゃあJavaでとってくるからOAuthのアルゴリズムだけ → ironcladが
動かない
もう!生ソケットでやってやる! → usocketが動かない
死
代替案
●

AI作ろう。オセロの。

●

スマホだし高速化しないときついよなー。

●

高速な方法を見付ける→難しい

●

でもやるしかない。

●

突き進む!
できた!
●

Black'ndWhiteって言います
実装
●

transposition tableを使う
–
–

●

どこに置くとどの石を裏返せるかの情報を保持
実装が難しい

評価関数は複数を組み合わせ
–

位置評価

–

着手可能手

–

中心性

–

石数
実装2
●

Common LispはAI「だけ」実装
–
–

開発が容易に

–
●

ゲームの管理はJava
移植性

Javaはグラフィックとゲーム
–
–

やっぱりグラフィックに強い
盤の情報は持たない(Common Lispに問い合わせ
る)
良かったところ
●

●

●

AIに強いCommon Lispとグラフィックに強い
Javaで分けれた
Common Lispでソースコード生成
初心者でも扱えるJavaのグラフィックライブラ
リ
まとめ
●

地雷6つ踏んだ

●

高速なAI作った
–

transposition table、評価関数3/4は初めての実装

●

初めてAndroidアプリ作った

●

初めてCommon LispでAndroidアプリ作った
以上

質問どうぞ

Más contenido relacionado

La actualidad más candente

非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」Muyuu Fujita
 
ランダムフォレスト回帰
ランダムフォレスト回帰ランダムフォレスト回帰
ランダムフォレスト回帰隆介 小野
 
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)Sho Hosoda
 
Milkcocoaでリアルタイム通信しない話
Milkcocoaでリアルタイム通信しない話Milkcocoaでリアルタイム通信しない話
Milkcocoaでリアルタイム通信しない話Natsumi Oki
 
Shibuya.rb0921 / ただRubyで使われていないメソッドを削除したい人生だった
Shibuya.rb0921 / ただRubyで使われていないメソッドを削除したい人生だったShibuya.rb0921 / ただRubyで使われていないメソッドを削除したい人生だった
Shibuya.rb0921 / ただRubyで使われていないメソッドを削除したい人生だったYasuhiro Matsumura
 
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話ssuserfb543d1
 
scikit-learnとTensorFlowによる実践機械学習 第12章
scikit-learnとTensorFlowによる実践機械学習 第12章scikit-learnとTensorFlowによる実践機械学習 第12章
scikit-learnとTensorFlowによる実践機械学習 第12章隆介 小野
 
JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方Shuyo Nakatani
 
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Mrubyについて   第16回 岡山ruby, ruby on rails勉強会Mrubyについて   第16回 岡山ruby, ruby on rails勉強会
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会Masaya Konishi
 
mozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-divermozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-diverJxck Jxck
 
Robot frontier lesson3
Robot frontier lesson3Robot frontier lesson3
Robot frontier lesson3Ryuichi Ueda
 
松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピール松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピールSho Hashimoto
 
GC本読んでJSで偽GC作った
GC本読んでJSで偽GC作ったGC本読んでJSで偽GC作った
GC本読んでJSで偽GC作ったto_ueda
 
るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。Sho Hashimoto
 
Ruby on Rails での開発で使って良いなと思ったメソッド
Ruby on Rails での開発で使って良いなと思ったメソッドRuby on Rails での開発で使って良いなと思ったメソッド
Ruby on Rails での開発で使って良いなと思ったメソッド107steps
 
Robot frontier lesson2
Robot frontier lesson2Robot frontier lesson2
Robot frontier lesson2Ryuichi Ueda
 
Ruby と C# をつなぐ
Ruby と C# をつなぐRuby と C# をつなぐ
Ruby と C# をつなぐ107steps
 

La actualidad más candente (19)

非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
 
ランダムフォレスト回帰
ランダムフォレスト回帰ランダムフォレスト回帰
ランダムフォレスト回帰
 
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
 
Milkcocoaでリアルタイム通信しない話
Milkcocoaでリアルタイム通信しない話Milkcocoaでリアルタイム通信しない話
Milkcocoaでリアルタイム通信しない話
 
Shibuya.rb0921 / ただRubyで使われていないメソッドを削除したい人生だった
Shibuya.rb0921 / ただRubyで使われていないメソッドを削除したい人生だったShibuya.rb0921 / ただRubyで使われていないメソッドを削除したい人生だった
Shibuya.rb0921 / ただRubyで使われていないメソッドを削除したい人生だった
 
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
 
scikit-learnとTensorFlowによる実践機械学習 第12章
scikit-learnとTensorFlowによる実践機械学習 第12章scikit-learnとTensorFlowによる実践機械学習 第12章
scikit-learnとTensorFlowによる実践機械学習 第12章
 
JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方
 
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Mrubyについて   第16回 岡山ruby, ruby on rails勉強会Mrubyについて   第16回 岡山ruby, ruby on rails勉強会
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
 
mozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-divermozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-diver
 
Robot frontier lesson3
Robot frontier lesson3Robot frontier lesson3
Robot frontier lesson3
 
松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピール松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピール
 
GC本読んでJSで偽GC作った
GC本読んでJSで偽GC作ったGC本読んでJSで偽GC作った
GC本読んでJSで偽GC作った
 
るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。
 
Scala.js
Scala.jsScala.js
Scala.js
 
Ruby on Rails での開発で使って良いなと思ったメソッド
Ruby on Rails での開発で使って良いなと思ったメソッドRuby on Rails での開発で使って良いなと思ったメソッド
Ruby on Rails での開発で使って良いなと思ったメソッド
 
Robot frontier lesson2
Robot frontier lesson2Robot frontier lesson2
Robot frontier lesson2
 
Ruby と C# をつなぐ
Ruby と C# をつなぐRuby と C# をつなぐ
Ruby と C# をつなぐ
 
TypeScript 勉強会
TypeScript 勉強会TypeScript 勉強会
TypeScript 勉強会
 

Destacado

(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義するblackenedgold
 
Common Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろうCommon Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろうblackenedgold
 
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたReal World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたblackenedgold
 
OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法Hiroki Mizuno
 
広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっか広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっかRyota Murohoshi
 
CL21で色々なデータ構造を実装してみようとした
CL21で色々なデータ構造を実装してみようとしたCL21で色々なデータ構造を実装してみようとした
CL21で色々なデータ構造を実装してみようとしたblackenedgold
 
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Hiroki Mizuno
 
Camomile : A Unicode library for OCaml
Camomile : A Unicode library for OCamlCamomile : A Unicode library for OCaml
Camomile : A Unicode library for OCamlYamagata Yoriyuki
 
Using functional programming within an industrial product group: perspectives...
Using functional programming within an industrial product group: perspectives...Using functional programming within an industrial product group: perspectives...
Using functional programming within an industrial product group: perspectives...Anil Madhavapeddy
 
Mirage: ML kernels in the cloud (ML Workshop 2010)
Mirage: ML kernels in the cloud (ML Workshop 2010)Mirage: ML kernels in the cloud (ML Workshop 2010)
Mirage: ML kernels in the cloud (ML Workshop 2010)Anil Madhavapeddy
 
Introduction to functional programming using Ocaml
Introduction to functional programming using OcamlIntroduction to functional programming using Ocaml
Introduction to functional programming using Ocamlpramode_ce
 
An Introduction to Functional Programming using Haskell
An Introduction to Functional Programming using HaskellAn Introduction to Functional Programming using Haskell
An Introduction to Functional Programming using HaskellMichel Rijnders
 
Introduction to haskell
Introduction to haskellIntroduction to haskell
Introduction to haskellLuca Molteni
 
OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012Anil Madhavapeddy
 
Os Peytonjones
Os PeytonjonesOs Peytonjones
Os Peytonjonesoscon2007
 
Hey! There's OCaml in my Rust!
Hey! There's OCaml in my Rust!Hey! There's OCaml in my Rust!
Hey! There's OCaml in my Rust!Kel Cecil
 

Destacado (20)

(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
 
Common Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろうCommon Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろう
 
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたReal World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみた
 
Lispmeetup11
Lispmeetup11Lispmeetup11
Lispmeetup11
 
OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法
 
広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっか広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっか
 
CL21で色々なデータ構造を実装してみようとした
CL21で色々なデータ構造を実装してみようとしたCL21で色々なデータ構造を実装してみようとした
CL21で色々なデータ構造を実装してみようとした
 
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋
 
Camomile : A Unicode library for OCaml
Camomile : A Unicode library for OCamlCamomile : A Unicode library for OCaml
Camomile : A Unicode library for OCaml
 
Ocaml
OcamlOcaml
Ocaml
 
Using functional programming within an industrial product group: perspectives...
Using functional programming within an industrial product group: perspectives...Using functional programming within an industrial product group: perspectives...
Using functional programming within an industrial product group: perspectives...
 
A taste of Functional Programming
A taste of Functional ProgrammingA taste of Functional Programming
A taste of Functional Programming
 
Haskell - Functional Programming
Haskell - Functional ProgrammingHaskell - Functional Programming
Haskell - Functional Programming
 
Mirage: ML kernels in the cloud (ML Workshop 2010)
Mirage: ML kernels in the cloud (ML Workshop 2010)Mirage: ML kernels in the cloud (ML Workshop 2010)
Mirage: ML kernels in the cloud (ML Workshop 2010)
 
Introduction to functional programming using Ocaml
Introduction to functional programming using OcamlIntroduction to functional programming using Ocaml
Introduction to functional programming using Ocaml
 
An Introduction to Functional Programming using Haskell
An Introduction to Functional Programming using HaskellAn Introduction to Functional Programming using Haskell
An Introduction to Functional Programming using Haskell
 
Introduction to haskell
Introduction to haskellIntroduction to haskell
Introduction to haskell
 
OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012
 
Os Peytonjones
Os PeytonjonesOs Peytonjones
Os Peytonjones
 
Hey! There's OCaml in my Rust!
Hey! There's OCaml in my Rust!Hey! There's OCaml in my Rust!
Hey! There's OCaml in my Rust!
 

Último

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (10)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

計算数学