Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Nobutada Matsubara
1,124 views
Lisper はじめました (再)
昔作った D 言語で書いた Lisp 処理系を Docker を使って久々にビルドしたってだけの話
Software
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 20
2
/ 20
3
/ 20
4
/ 20
5
/ 20
6
/ 20
7
/ 20
8
/ 20
9
/ 20
10
/ 20
11
/ 20
12
/ 20
13
/ 20
14
/ 20
15
/ 20
16
/ 20
17
/ 20
18
/ 20
19
/ 20
20
/ 20
More Related Content
PDF
Lisperはじめました
by
Nobutada Matsubara
PPTX
Scalable Partial Least Squares Regression on Grammar-Compressed Data Matrices
by
Yasuo Tabei
PDF
Rubyの御先祖CLUのお話(OSC 2011 Shimane LT 資料)
by
洋史 東平
PDF
計算量のはなし(Redisを使うなら必読!O(logN)など)
by
Makoto SAKAI
PPTX
Lispのべんきょう
by
Hatori Kouiti
PDF
PythonistaがOCamlを実用する方法
by
Yosuke Onoue
PDF
立命合宿2016Day3:D問題
by
HCPC: 北海道大学競技プログラミングサークル
PDF
Rubyの御先祖CLUのお話(原本)
by
洋史 東平
Lisperはじめました
by
Nobutada Matsubara
Scalable Partial Least Squares Regression on Grammar-Compressed Data Matrices
by
Yasuo Tabei
Rubyの御先祖CLUのお話(OSC 2011 Shimane LT 資料)
by
洋史 東平
計算量のはなし(Redisを使うなら必読!O(logN)など)
by
Makoto SAKAI
Lispのべんきょう
by
Hatori Kouiti
PythonistaがOCamlを実用する方法
by
Yosuke Onoue
立命合宿2016Day3:D問題
by
HCPC: 北海道大学競技プログラミングサークル
Rubyの御先祖CLUのお話(原本)
by
洋史 東平
What's hot
PDF
PythonでLispを実装した (evalつき)
by
t-sin
PDF
あまぁいRcpp生活
by
Masaki Tsuda
PDF
Rでisomap(多様体学習のはなし)
by
Kohta Ishikawa
PDF
20181214 clebsch gordan_mizuta
by
Rei Mizuta
PDF
Scheme to x86コンパイラ
by
Nobutaka Takushima
PDF
Rcppのすすめ
by
Masaki Tsuda
PDF
Tokyo.R 白熱教室「これからのRcppの話をしよう」
by
Nagi Teramo
PDF
SwiftでRiemann球面を扱う
by
hayato iida
PDF
文字列処理
by
Ryunosuke Iwai
PDF
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
by
洋史 東平
PDF
Lisp講義1
by
stibear (stibear1996)
PDF
Scala 初心者が Hom 函手を Scala で考えてみた
by
Kazuyuki TAKASE
ODP
(define)なしで再帰関数を定義する
by
blackenedgold
PPTX
[DL輪読会]Clebsch–Gordan Nets: a Fully Fourier Space Spherical Convolutional Neu...
by
Deep Learning JP
PDF
Scala 初心者が米田の補題を Scala で考えてみた
by
Kazuyuki TAKASE
PDF
ACPC 2018 Day3 F: 01 文字列と窓 (Binary String with Slit)
by
HCPC: 北海道大学競技プログラミングサークル
PDF
(call/cc (lambda (cont) (cont 知見)))
by
Susisu
PDF
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
by
Ouka Yuka
PDF
情強アルゴリズムDIMSUM
by
Kotaro Tanahashi
PDF
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
by
TanUkkii
PythonでLispを実装した (evalつき)
by
t-sin
あまぁいRcpp生活
by
Masaki Tsuda
Rでisomap(多様体学習のはなし)
by
Kohta Ishikawa
20181214 clebsch gordan_mizuta
by
Rei Mizuta
Scheme to x86コンパイラ
by
Nobutaka Takushima
Rcppのすすめ
by
Masaki Tsuda
Tokyo.R 白熱教室「これからのRcppの話をしよう」
by
Nagi Teramo
SwiftでRiemann球面を扱う
by
hayato iida
文字列処理
by
Ryunosuke Iwai
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
by
洋史 東平
Lisp講義1
by
stibear (stibear1996)
Scala 初心者が Hom 函手を Scala で考えてみた
by
Kazuyuki TAKASE
(define)なしで再帰関数を定義する
by
blackenedgold
[DL輪読会]Clebsch–Gordan Nets: a Fully Fourier Space Spherical Convolutional Neu...
by
Deep Learning JP
Scala 初心者が米田の補題を Scala で考えてみた
by
Kazuyuki TAKASE
ACPC 2018 Day3 F: 01 文字列と窓 (Binary String with Slit)
by
HCPC: 北海道大学競技プログラミングサークル
(call/cc (lambda (cont) (cont 知見)))
by
Susisu
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
by
Ouka Yuka
情強アルゴリズムDIMSUM
by
Kotaro Tanahashi
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
by
TanUkkii
Similar to Lisper はじめました (再)
KEY
Algebraic DP: 動的計画法を書きやすく
by
Hiromi Ishii
PDF
たのしい関数型
by
Shinichi Kozake
PDF
多値で簡単パーサーコンビネーター
by
Keiichiro Shikano
PDF
関数プログラミング入門
by
Hideyuki Tanaka
PDF
姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい
by
Kazkuki Oakamoto
PDF
すごいHaskell読書会 in 大阪 2週目 #5 第5章:高階関数 (2)
by
Yoichi Nakayama
PDF
Introduction to Categorical Programming (Revised)
by
Masahiro Sakai
PDF
すごいHaskell読書会#1 in 大阪
by
yashigani
PDF
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
by
Yuto Takei
PDF
Vinculum
by
tomerun
PDF
Introduction to Categorical Programming
by
Masahiro Sakai
PPTX
90分 Scheme to C(勝手に抄訳版)
by
ryos36
PPTX
20周遅れ
by
ryos36
PDF
C++0x in programming competition
by
yak1ex
PDF
Tapl 5
by
rf0444
PDF
Material
by
_TUNE_
PDF
関数型都市忘年会『はじめての函数型プログラミング』
by
Kenta USAMI
PDF
初めてのHaskell (表)
by
karky7
PDF
純LISPから考える関数型言語のプリミティブ: Clojure, Elixir, Haskell, Scala
by
Kent Ohashi
PDF
Gura プログラミング言語の紹介
by
Yutaka Saito
Algebraic DP: 動的計画法を書きやすく
by
Hiromi Ishii
たのしい関数型
by
Shinichi Kozake
多値で簡単パーサーコンビネーター
by
Keiichiro Shikano
関数プログラミング入門
by
Hideyuki Tanaka
姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい
by
Kazkuki Oakamoto
すごいHaskell読書会 in 大阪 2週目 #5 第5章:高階関数 (2)
by
Yoichi Nakayama
Introduction to Categorical Programming (Revised)
by
Masahiro Sakai
すごいHaskell読書会#1 in 大阪
by
yashigani
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
by
Yuto Takei
Vinculum
by
tomerun
Introduction to Categorical Programming
by
Masahiro Sakai
90分 Scheme to C(勝手に抄訳版)
by
ryos36
20周遅れ
by
ryos36
C++0x in programming competition
by
yak1ex
Tapl 5
by
rf0444
Material
by
_TUNE_
関数型都市忘年会『はじめての函数型プログラミング』
by
Kenta USAMI
初めてのHaskell (表)
by
karky7
純LISPから考える関数型言語のプリミティブ: Clojure, Elixir, Haskell, Scala
by
Kent Ohashi
Gura プログラミング言語の紹介
by
Yutaka Saito
More from Nobutada Matsubara
PDF
Haskell で作る競技型イベントの裏側
by
Nobutada Matsubara
PDF
Marp Next Theme: Colors
by
Nobutada Matsubara
PDF
Marp Next Tips !
by
Nobutada Matsubara
PDF
Haskell で CLI
by
Nobutada Matsubara
PDF
貧者のための「cron」
by
Nobutada Matsubara
PDF
Build Dockferile with Haskell
by
Nobutada Matsubara
PDF
Elixir Programming with Type checking
by
Nobutada Matsubara
PDF
MixML 作ってみる
by
Nobutada Matsubara
PDF
Elm でなんかつくる
by
Nobutada Matsubara
PDF
Haskell と Elm と JSON の話
by
Nobutada Matsubara
PDF
ADVENTAR の Bot を作る with Haskell
by
Nobutada Matsubara
PDF
Haskell Backpack 事始め
by
Nobutada Matsubara
PDF
GitHub での Haskell の色が変わったんで
by
Nobutada Matsubara
PDF
日記って続かないよね...
by
Nobutada Matsubara
PDF
「7つの言語、7つの世界」を読む
by
Nobutada Matsubara
PDF
Haskell で LINE Bot を作ってみた
by
Nobutada Matsubara
PDF
Marp colors
by
Nobutada Matsubara
PDF
Marp Tips
by
Nobutada Matsubara
PDF
Whitespcae 入門
by
Nobutada Matsubara
PDF
入門 超絶技巧プログラミング !
by
Nobutada Matsubara
Haskell で作る競技型イベントの裏側
by
Nobutada Matsubara
Marp Next Theme: Colors
by
Nobutada Matsubara
Marp Next Tips !
by
Nobutada Matsubara
Haskell で CLI
by
Nobutada Matsubara
貧者のための「cron」
by
Nobutada Matsubara
Build Dockferile with Haskell
by
Nobutada Matsubara
Elixir Programming with Type checking
by
Nobutada Matsubara
MixML 作ってみる
by
Nobutada Matsubara
Elm でなんかつくる
by
Nobutada Matsubara
Haskell と Elm と JSON の話
by
Nobutada Matsubara
ADVENTAR の Bot を作る with Haskell
by
Nobutada Matsubara
Haskell Backpack 事始め
by
Nobutada Matsubara
GitHub での Haskell の色が変わったんで
by
Nobutada Matsubara
日記って続かないよね...
by
Nobutada Matsubara
「7つの言語、7つの世界」を読む
by
Nobutada Matsubara
Haskell で LINE Bot を作ってみた
by
Nobutada Matsubara
Marp colors
by
Nobutada Matsubara
Marp Tips
by
Nobutada Matsubara
Whitespcae 入門
by
Nobutada Matsubara
入門 超絶技巧プログラミング !
by
Nobutada Matsubara
Lisper はじめました (再)
1.
Lisper はじめました (再) ひげ
2.
Lisper やってた
3.
DLisp D言語で作った Lisp D言語なのは使ってる人が近くにたまたま居たから GFLの早期配属の関係で3年の後期に作った Pure Lisp
に算術論理演算とクロージャを加えた クロージャは遅延評価をするため 継承とか多態性とかを駆使して作ってる のであんまり一般的なLispっぽくないコード
4.
Lisp is 何 1958
年に設計された2 番目に古い高級プログラミング言語 LISt Processing の略称 括弧によるシンプル(すぎる)なネスト構造で記述 手続きと引数はポーランド記法 数学を背景に持つ特殊な言語 ; n までの総和を求める関数 (define (sum n) (if (eq n 0) 0 (+ (sum (- n 1)) 1)))
5.
Pure Lisp John McCarthy
は論文で式を評価するための最小のLisp を示した それを「Pure Lisp」という Atom と List の2 種類のデータ構造を持つ atom , eq , cons , car , cdr の5 つの基本関数を持つ cond , define , lambda , quote の4つの特殊形式を持つ
6.
しゅうかつでウケがいいので取りあえずあげた https://github.com/matsubara0507/dlisp
7.
ただしビルドしてみてない 作ったのは昔のPCで 手元のPCにはもうD言語が残ってないので
8.
そこで
9.
Docker イメージはある
10.
Dockerfileを書く FROM dlanguage/ldc:latest WORKDIR /root/dlisp COPY
. /root/dlisp RUN ldc2 -of/usr/local/bin/plisp *.d ./**/*.d ./**/**/*.d CMD ["/bin/bash"]
11.
いいかんじ
12.
ネイピア数を求める
13.
ネイピア数の表現方法はいろいろ (Wkipediaより)
14.
2つの方法を用いる
15.
方法1 無限級数をそのまま+オイラートランスフォーム e = オイラートランスフォームは振動する級数の収束速度を速める S − [ k=0 ∑ ∞ k! (−1)k ] −1 n+1 S
− 2S + Sn−1 n n+1 (S − S )n+1 n 2
16.
方法1 無限級数をそのまま+オイラートランスフォーム ; e: (/
(stream-ref e-stream n)) (define (e-proc n) (cond ((< n 0) (- (/ 1.0 (product (- n))))) (#t (/ 1.0 (product n))))) (define (e-summands n) (cons (e-proc n) (lambda () (stream-map - (e-summands (+ n 1)))))) (define e-stream (partial-sums (e-summands 0))) ; Euler Transform: (stream-ref (euler-transform pi-stream) n) (define (euler-transform s) ((lambda (s0 s1 s2) (cons (- s2 (/ (* (- s2 s1) (- s2 s1)) (+ s0 (* -2 s1) s2))) (lambda () (euler-transform (stream-cdr s))))) (stream-ref s 0) (stream-ref s 1) (stream-ref s 2)))
17.
方法2 無限ストリームで模倣する ネイピア数の任意桁目の数字を計算するので誤差とかは無い eの無限級数 e = =
1 + 1 + + + ⋯ eの小数点第1位は次式の整数部分 10(e − 2) = + + ⋯ k=0 ∑ ∞ k! 1 2! 1 3! 1 2! 10 3! 10 4! 10
18.
方法2 無限ストリームで模倣する 整数部分を求めるために各項10/k!の分子がk未満になるよう変形 10(e − 2)
= + ⋯ + + + + + ⋯ 2! 10 8! 10 9! 10 + 1 10! 0 11! 10 = + ⋯ + + + + + ⋯ 2! 10 8! 10 + 1 9! 2 10! 0 11! 10 = 7 + + + + + + + + ⋯ 2! 0 3! 1 4! 0 5! 1 6! 5 7! 4 8! 3
19.
方法2 無限ストリームで模倣する ; napier: (stream-ref
napier n) (define ones (cons 1 (lambda () ones))) (define nomalize (lambda (n stream) ((lambda (head right) ((lambda (carry) (cons carry (lambda () (cons (mod (+ head (stream-car (force right))) n) (lambda () (stream-cdr (force right))))))) (cond ((< (+ (mod head n) 9) n) (div head n)) (true (div (+ head (stream-car (force right))) n))))) (stream-car stream) (lambda () (nomalize (+ n 1) (stream-cdr stream)))))) (define convert (lambda (x) (cons (stream-car x) (lambda () (convert (nomalize 2 (scale-stream (stream-cdr x) 10))))))) (define napier (convert (cons 2 (lambda () ones))))
20.
おしまい
Download