Submit Search
Common Lisp ユーザへのScheme紹介
0 likes
1,533 views
たけおか しょうぞう
Common Lisp を知っている人に、Schemeを軽く紹介
Technology
Read more
1 of 14
Download now
Download to read offline
1
2
Most read
3
4
Most read
5
6
Most read
7
8
9
10
11
12
13
14
More Related Content
PDF
Unity開発で使える設計の話+Zenjectの紹介
torisoup
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
PPTX
【Unity道場Houdini編】Houdini Engine とプロシージャル法
UnityTechnologiesJapan002
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
PDF
Unityではじめるオープンワールド入門 アーティスト編
Unity Technologies Japan K.K.
PPTX
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
PDF
BGP Unnumbered で遊んでみた
akira6592
PDF
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
SEGADevTech
Unity開発で使える設計の話+Zenjectの紹介
torisoup
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
【Unity道場Houdini編】Houdini Engine とプロシージャル法
UnityTechnologiesJapan002
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
Unityではじめるオープンワールド入門 アーティスト編
Unity Technologies Japan K.K.
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
BGP Unnumbered で遊んでみた
akira6592
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
SEGADevTech
What's hot
(20)
PPTX
Photonのサービス選択の勘どころ
GMO GlobalSign Holdings K.K.
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
PDF
CTF for ビギナーズ バイナリ講習資料
SECCON Beginners
PDF
多機能ボイチャを簡単に導入する方法
Unity Technologies Japan K.K.
PDF
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
PDF
HTTP/2 入門
Yahoo!デベロッパーネットワーク
PDF
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
PDF
AAをつくろう!
Takami Sato
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
PDF
UE4におけるエフェクトの基本戦略事例 後半
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Lispマシン・シミュレータの紹介
たけおか しょうぞう
PDF
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
PPTX
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
U-dai Yokoyama
PDF
CTF for ビギナーズ ネットワーク講習資料
SECCON Beginners
PDF
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Yoshifumi Kawai
PDF
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
Unity Technologies Japan K.K.
PDF
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
PDF
オンラインゲームの仕組みと工夫
Yuta Imai
PDF
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!デベロッパーネットワーク
KEY
やはりお前らのMVCは間違っている
Koichi Tanaka
Photonのサービス選択の勘どころ
GMO GlobalSign Holdings K.K.
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
CTF for ビギナーズ バイナリ講習資料
SECCON Beginners
多機能ボイチャを簡単に導入する方法
Unity Technologies Japan K.K.
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
HTTP/2 入門
Yahoo!デベロッパーネットワーク
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
AAをつくろう!
Takami Sato
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
UE4におけるエフェクトの基本戦略事例 後半
エピック・ゲームズ・ジャパン Epic Games Japan
Lispマシン・シミュレータの紹介
たけおか しょうぞう
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
U-dai Yokoyama
CTF for ビギナーズ ネットワーク講習資料
SECCON Beginners
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Yoshifumi Kawai
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
Unity Technologies Japan K.K.
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
オンラインゲームの仕組みと工夫
Yuta Imai
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!デベロッパーネットワーク
やはりお前らのMVCは間違っている
Koichi Tanaka
Ad
Similar to Common Lisp ユーザへのScheme紹介
(20)
PDF
昔の外付けキャッシュ & コヒーレント・キャッシュ
たけおか しょうぞう
PDF
Ichigojam ossc-170819
たけおか しょうぞう
PDF
無脳スマートスピーカを 越えレレレのレ
たけおか しょうぞう
PDF
お化け
たけおか しょうぞう
PDF
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
たけおか しょうぞう
PDF
RISC-V User level ISA
たけおか しょうぞう
PDF
Dataflow140711@Kernel/VM北陸1
たけおか しょうぞう
PDF
Dataflow140711-a@Kernel/VM北陸1
たけおか しょうぞう
PDF
What's Operating System?
Naruhiko Ogasawara
PDF
[Java Day Tokyo 2018]50分で最新技術学習の基礎を身につける(SOMPO Systems Daisuke Nishino)
Daisuke Nishino
PDF
Os真髄
magoroku Yamamoto
PDF
Lisp_chibi_machine 190427
たけおか しょうぞう
PDF
Lispマシン ドキュメント和訳とか、 ちびLispとか
たけおか しょうぞう
PDF
xv6 + mist32 + mruby
Hirotaka Kawata
PDF
そういえばRとはなんだったか
Nobukuni Kino
PDF
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
PDF
ワークショップ「ゲーム開発チームにおけるパトレット」
Masaru Nagaku
PPTX
Cloudlatex講習
Nobutaka Shimada
PPTX
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
Akihiro Suda
PPTX
最小セット
Kiyoshi Ogawa
昔の外付けキャッシュ & コヒーレント・キャッシュ
たけおか しょうぞう
Ichigojam ossc-170819
たけおか しょうぞう
無脳スマートスピーカを 越えレレレのレ
たけおか しょうぞう
お化け
たけおか しょうぞう
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
たけおか しょうぞう
RISC-V User level ISA
たけおか しょうぞう
Dataflow140711@Kernel/VM北陸1
たけおか しょうぞう
Dataflow140711-a@Kernel/VM北陸1
たけおか しょうぞう
What's Operating System?
Naruhiko Ogasawara
[Java Day Tokyo 2018]50分で最新技術学習の基礎を身につける(SOMPO Systems Daisuke Nishino)
Daisuke Nishino
Os真髄
magoroku Yamamoto
Lisp_chibi_machine 190427
たけおか しょうぞう
Lispマシン ドキュメント和訳とか、 ちびLispとか
たけおか しょうぞう
xv6 + mist32 + mruby
Hirotaka Kawata
そういえばRとはなんだったか
Nobukuni Kino
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
ワークショップ「ゲーム開発チームにおけるパトレット」
Masaru Nagaku
Cloudlatex講習
Nobutaka Shimada
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
Akihiro Suda
最小セット
Kiyoshi Ogawa
Ad
More from たけおか しょうぞう
(20)
PDF
the original SoC "ORE_SoC" with "ROS2rapper"
たけおか しょうぞう
PDF
俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...
たけおか しょうぞう
PDF
俺のSoC, AX1001 ができたぞー. AX1001:the SoC for edge Devices and robot modules,
たけおか しょうぞう
PDF
Using Retro-CPU with low aspirations, No FPGA
たけおか しょうぞう
PDF
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
たけおか しょうぞう
PDF
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
たけおか しょうぞう
PDF
SOAR:Smalltalk on RISC
たけおか しょうぞう
PDF
俺ASICと俺CPU“松竹V(しょうちくぶい)”
たけおか しょうぞう
PDF
あるRISC-V CPUの 浮動小数点数(異常なし)
たけおか しょうぞう
PDF
RISC-Vの可能性
たけおか しょうぞう
PDF
RISC-Vの可能性
たけおか しょうぞう
PDF
どうして昔の人は八進数でしゃべるのか?
たけおか しょうぞう
PDF
Riscv+fpga200606
たけおか しょうぞう
PDF
Takep lpc1114-190614
たけおか しょうぞう
PDF
Takep lpc1114-190613
たけおか しょうぞう
PDF
初歩的な部品の知識
たけおか しょうぞう
PDF
Takepino LPC1114
たけおか しょうぞう
PDF
大昔のMMU
たけおか しょうぞう
PDF
Mt basic as-os_on_danbot
たけおか しょうぞう
PDF
Axeai 170421
たけおか しょうぞう
the original SoC "ORE_SoC" with "ROS2rapper"
たけおか しょうぞう
俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...
たけおか しょうぞう
俺のSoC, AX1001 ができたぞー. AX1001:the SoC for edge Devices and robot modules,
たけおか しょうぞう
Using Retro-CPU with low aspirations, No FPGA
たけおか しょうぞう
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
たけおか しょうぞう
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
たけおか しょうぞう
SOAR:Smalltalk on RISC
たけおか しょうぞう
俺ASICと俺CPU“松竹V(しょうちくぶい)”
たけおか しょうぞう
あるRISC-V CPUの 浮動小数点数(異常なし)
たけおか しょうぞう
RISC-Vの可能性
たけおか しょうぞう
RISC-Vの可能性
たけおか しょうぞう
どうして昔の人は八進数でしゃべるのか?
たけおか しょうぞう
Riscv+fpga200606
たけおか しょうぞう
Takep lpc1114-190614
たけおか しょうぞう
Takep lpc1114-190613
たけおか しょうぞう
初歩的な部品の知識
たけおか しょうぞう
Takepino LPC1114
たけおか しょうぞう
大昔のMMU
たけおか しょうぞう
Mt basic as-os_on_danbot
たけおか しょうぞう
Axeai 170421
たけおか しょうぞう
Common Lisp ユーザへのScheme紹介
1.
Common Lisper向けの Scheme紹介 2018.JUN.23 たけおか@AXE/たけおかラボ @takeoka
2.
たけおか 1977年(高校2年生): MITのJames Slagleの書いたAIの教科書(日本語版)を読んで 「○×」を打つプログラムを8bitマイコンTK-80(8080,RAM
512Bytes)の機械語で書く 1980年代: UNIXの仮名漢字変換システムWnnや Temporal Prolog(時相論理Prolog)を京 大数解研の地下辺りで作ったり。渋谷や神保町辺りで国産X Window端末などの設計開 発に携わる。TCP/IPスタックを自分で書く 1987年ごろ、湯淺さんにSchemeを教えてもらった 1990年代初頭:豊橋技科大 湯淺研にて、1024PE規模の超並列計算機“SM-1”のLSIハード ウェア、基本ソフトウェアの設計開発に携わる。 Common Lispで開発ツール書いた。 当時、超並列計算機は、ニューラルネットのシミュレーションによく使用された 現在: 組み込みOSを作らせたり、AI開発 湯淺研 SM-1 フロントエンドはSparc 開発環境はCommon LispとC 萩谷さんに貰った (サインはしてくれない) 湯淺さんのScheme本 岩波書店 (1991/10/29) (買ってません (^^; )
3.
● Scheme を知らない人 向け
紹介 目次 ● funcall かっこわるい ● schemeには、遅延評価がある ● schemeには、継続がある
4.
funcall かっこわるい ● schemeは、関数定義するとクロージャ(関数閉包)ができ る ● クロージャに 実引数を適用するのに、なにも要らない –
CLは、funcall とか apply とか eval とかが必要
5.
Common Lisp * (funcall
#'cdr '(a s d)) (S D) 関数さまは、 明示して 呼び出して 差し上げる なんだ? この記号わ? function の省略形
6.
funcall かっこわるい (defvar baka) BAKA *
(setq baka (let ((sum 0)) (lambda (x) (incf sum x)))) #<CLOSURE (LAMBDA (X)) {100219D05B}> * (funcall baka 2) 2 * (funcall baka 2) 4 * > (define aaa nil) #<unspecified> > (set! aaa (let ((sum 0)) (lambda (x) (let()(set! sum (+ sum x)) sum)))) #<unspecified> > aaa #<CLOSURE <anon> (x) (#@begin (#@set! #@sum (#@+ #@sum #@x)) #@sum)> > (aaa 1) 1 > (aaa 1) 2 > (aaa 1) 3 Common Lisp Scheme (scm) ←funcallは 楽しくない ←いいね
7.
schemeでは、関数が第一級オブジェクト ● クロージャに 実引数を適用するのに、なにも要らない ● schemeは 関数(定義)が別の名前空間ではない –
フツーの変数に、関数(クロージャ)が保持される ● 関数が、1st class object (第一級オブジェクト) ● 一級オブジェクトとは、フツーのデータとして扱えるもの – schemeのクロージャは、変数に入れたり、引数として渡せる ● CommonLispは、関数定義の名前空間が別 – defun すると、特別な名前空間で管理される – funcallなどで呼び出し
8.
delay/force ● schemeには、遅延評価がある ● 遅延された 計算は promise
と呼ぶ
9.
delayとforce > (define laz
(delay (let() (print "foo")(+ 1 2)))) #<unspecified> > laz #<promise 3> > (force laz) "foo" 3 > (force laz) 3 > (force laz) 3 >(promise? laz) #t ←評価は一回だけしか行われない ←遅延オブジェクト
10.
continuation 継続 ● schemeには、continuation 「継続」がある ● 大域脱出
(catch/throw, setjmp/longjmp) に使う ● 継続は、スレッド実体と同じもの ● コルーチン/スレッドとして扱える ● (スレッド)スケジューラは居ない – 自スレッドの休止 & 他スレッド 起床 を自分で行う = コルーチン – continuation passing ● ※最適化 手法(CPS変換)のことではない ● UNIXマガジン 1991.JAN に同様の記事を書いたよ – ruby のまつもとゆきひろ氏も、読んでいた.rubyには最初から継続が ある
11.
call/cc (call-with-current-continuation bar) ● call-with-current-continuationは、呼び出し時の継続 を生成して、それを引数として、ここではbarを評価する ● この例では、bar を呼び出す ● barの引数に
継続が渡される ● barに渡された継続を評価すると、 call/cc した人の処理を再開する ● call-with-current-continuationは、しばしば call/cc という省略形が使われる
12.
continuation 継続でのコルーチン > (define
(foo) (let ((cc (call-with-current-continuation bar) )) (do () (#f) (display "Hello") (set! cc (call-with-current-continuation cc))))) #<unspecified> > (define (bar cc) (do ()(#f) (display "World") (set! cc (call-with-current-continuation cc)))) #<unspecified> > (foo) WorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorld HelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHello WorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorld HelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHello 4) barでのcall/ccで生成された 継続が、返り値となる ↓ 3) 呼び出し時に 受け取った継続を 評価し、fooを再開。 call/cc しながらなので、 fooの再開時に、barの継続が渡る 1)ここの継続を持って barを呼び出す 2) fooからcall/ccで 呼びだされた時のfooの継続が入る 5) bar再開
13.
超絶おまけ 神戸大 Fast Lisp(TAKITAC-7)
, Lispマシン 神戸大 工学部のビルに展示されている 瀧先生が作った 1979年2月10日に完動した. マイクロ命令サイクル300nsecのインター プリタ が当時の汎用大型計算機上に実装された LISPコンパイラと同程度の速度性能を示し た TAKITAC-7のアーキテクチャは 後のFACOM-αとNTTのELISが継承した. http://museum.ipsj.or.jp/computer/other/000 1.html いつか神戸大で関西Lispをやりましょう! 瀧先生にLispマシンの話をして頂くとか
14.
以上
Download