SlideShare a Scribd company logo
1 of 21
Download to read offline
Lisper はじめました
Lisp によるストリームの実装
ひげ
May 3, 2015
ひげ Lisper はじめました May 3, 2015 1 / 21
自己紹介
ひげ:群大 J 科の優等生
趣味:勉強(数学,物理,科学,哲学),IT 系は言語系が好き
最近は...
ゼミ → Haskell
演習 → C#
SSH → Java
ロボコン → C++
趣味 → Ruby
で今回は Lisp と D の話
ひげ Lisper はじめました May 3, 2015 2 / 21
前回までのあらすじ
前回の IGGG Meetup で「Lisper はじめました(大嘘)」を発表した
ひげ Lisper はじめました May 3, 2015 3 / 21
前回までのあらすじ
1
関数型言語の勉強がしたい!
2
処理系を実装して関数型言語の機能を加えれば勉強になる!
3
Pure Lisp ってのが 1 番簡単らしい!
D 言語でPure Lisp の処理系を実装した
ひげ Lisper はじめました May 3, 2015 4 / 21
前回までのあらすじ
Tour of Lisp
1958 年に設計された 2 番目に古い高級プログラミング言語
LISt Processing の略称
括弧によるシンプル(すぎる)なネスト構造で記述
手続きと引数はポーランド記法
数学を背景に持つ特殊な言語
; n ま で の 総 和 を 求 め る 関 数
(define (sum n)
(if (eq n 0) 0
(+ (sum (- n 1)) 1)))
ひげ Lisper はじめました May 3, 2015 5 / 21
前回までのあらすじ
Tour of Lisp
John McCarthy は論文で式を評価するための最小の Lisp を示した
それを「Pure Lisp」という
Atom と List の 2 種類のデータ構造を持つ
atom, eq, cons, car, cdr の 5 つの基本関数を持つ
cond, define, lambda, quote の 4 つの特殊形式を持つ
ひげ Lisper はじめました May 3, 2015 6 / 21
前回までのあらすじ
Tour of D
(マイナーな)C/C++の後継を目標とした言語
強い静的型付
Java や C とよく似た構文
型推論やガベージコレクションもある
仕様変更が激しかった(今はそうでもないらしい)
Facebook が利用している(らしい)
/* Hello World! */
import std.stdio;
void main() {
write("Hello World!");
}
ひげ Lisper はじめました May 3, 2015 7 / 21
前回までのあらすじ
今回はココから(やっと Lisp のコードを書きます)
1
関数型言語の勉強がしたい!
2
処理系を実装して関数型言語の機能を加えれば勉強になる!
3
Pure Lisp ってのが 1 番簡単らしい!
D 言語でPure Lisp の処理系を実装した
ひげ Lisper はじめました May 3, 2015 8 / 21
関数型プログラミング言語
関数型プログラミング言語は関数型プログラミングをサポートする言語
関数型プログラミング
プログラム(問題)を「関数」として記述するプログラミングのコト
そのため関数型言語には
ラムダ式
遅延評価
高階関数
代数データ型
等の関数の表現力を増すための機能が実装されている
そして今回実装するのは遅延評価
ひげ Lisper はじめました May 3, 2015 9 / 21
遅延評価
関数の評価戦略の 1 つ
関数の評価戦略
関数の引数の評価をいつ行うかというもの
大きく分けて 2 つ
先行評価:引数を評価してから関数に適用する
遅延評価:関数内で必要になってから引数を評価する
遅延評価を実装するには以下の 2 つの手続きが必要
評価を遅延させる手続き(delay)
遅延させた評価を強制させる手続き(force)
ひげ Lisper はじめました May 3, 2015 10 / 21
遅延評価
ストリーム
遅延評価の効果を試すためにストリームデータ構造を実装する
ストリーム
データの並びを表現したデータ構造
遅延評価を導入することによって「無限個の並び」を表現できる
Lisp の場合:cdr の評価を取り出す時まで遅延させる
ひげ Lisper はじめました May 3, 2015 11 / 21
実装
遅延評価の実装
2 つの手続きは以下のように書けばよい
; delay(syntax suger)
(lambda () <exp>)
; force
(define (force delayed-object) (delayed-object))
しかし、遅延評価を実装するために
式を定義したときの環境を保持しておく必要がある
環境
どのような変数があって、どのような値であるかの変数の集合
要するに静的な環境を持つ式クラスを定義しないといけない
実は、これをクロージャ(Closure)と言った
ひげ Lisper はじめました May 3, 2015 12 / 21
実装
遅延評価の実装
クロージャの D コード
class Closure : List {
private:
// Bind variables
Env add_binding(Exp vars, Exp vals, Env env);
public:
this(Exp exp, Env env) {
super(exp, env);
}
override Exp apply(Exp actuals)
{
Exp exp = super.exp1;
Env env = new Env(super.exp2.car, super.exp2.cdr);
return exp.cdr.car.eval(add_binding(exp.car, actuals, env));
}
override void print();
}
ひげ Lisper はじめました May 3, 2015 13 / 21
ストリーム
ストリームの実装
ストリームは自作した処理系の上でライブラリとして実装
;(define (delay exp) (lambda () exp))
(define (force delayed-object) (delayed-object))
;(define (cons-stream a b) (cons a (lambda () b)))
(define (stream-car stream) (car stream))
(define (stream-cdr stream) (force (cdr stream)))
(define the-empty-stream (quote ()))
(define (stream-null s) (null? s))
(define (stream-ref stream n)
(cond ((eq? n 0) (stream-car stream))
(#t (stream-ref (stream-cdr stream) (- n 1)))))
(define (stream-map proc s)
(cond ((stream-null s) the-empty-stream)
(#t (cons (proc (stream-car s))
(lambda () (stream-map proc (stream-cdr s)))))))
ひげ Lisper はじめました May 3, 2015 14 / 21
ネイピア数を求める
方法は 2 つ
無限級数を無限ストリームで模倣
ネイピア数を無限ストリームで模倣
ひげ Lisper はじめました May 3, 2015 15 / 21
ネイピア数を求める
無限級数の模倣
ネイピア数の無限級数
e =
[
∞
∑
k=0
(−1)k
k!
]−1
さらに Euler Transform で収束を加速
Euler Transform
Sn+1 −
(Sn+1 −Sn)2
Sn−1 −2Sn +Sn+1
ひげ Lisper はじめました May 3, 2015 16 / 21
ネイピア数を求める
無限級数の模倣
; 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)))
ひげ Lisper はじめました May 3, 2015 17 / 21
ネイピア数を求める
ネイピア数の模倣
e の無限級数
e =
∞
∑
k=0
1
k!
= 1+1+
1
2!
+
1
3!
+···
e の小数点第 1 位は次式の整数部分
10(e−2) =
10
2!
+
10
3!
+
10
4!
···
整数部分を求めるために各項 10/k! の分子が k 未満になるように変形
10(e−2) =
10
2!
+···+
10
8!
+
10+1
9!
+
0
10!
+
10
11!
+···
=
10
2!
+···+
10+1
8!
+
2
9!
+
0
10!
+
10
11!
+···
= 7+
0
2!
+
1
3!
+
0
4!
+
1
5!
+
5
6!
+
4
7!
+
3
8!
+
2
9!
+
0
10!
+···
ひげ Lisper はじめました May 3, 2015 18 / 21
ネイピア数を求める
ネイピア数の模倣
; 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))))
ひげ Lisper はじめました May 3, 2015 19 / 21
今後の展望
実は諸事情で C# に移植してる
C# の方に高階関数を入れるつもり
後は処理速度を少し考えたいので環境周りを何とかしたい
ひげ Lisper はじめました May 3, 2015 20 / 21
参考文献
Harold Abelson,Gerald Jay Sussman,Julie Sussman,『計算機プログ
ラムの構造と解釈 第 2 版』(和田栄一訳),株式会社翔泳社,2014 年
John McCarthy,『LISP 1.5 Programmers Manual』,The MIT Press,
1962
「M.Hiroi’s Home Page - お気楽 Scheme プログラミング入門 Scheme
で作る micro Scheme」,
http://www.geocities.jp/m_hiroi/func/abcscm30.html,
(2015/2/25 アクセス)
ひげ Lisper はじめました May 3, 2015 21 / 21

More Related Content

What's hot

[DL輪読会]Object-Centric Learning with Slot Attention
[DL輪読会]Object-Centric Learning with Slot Attention[DL輪読会]Object-Centric Learning with Slot Attention
[DL輪読会]Object-Centric Learning with Slot AttentionDeep Learning JP
 
モデル最適化指標・評価指標の選び方
モデル最適化指標・評価指標の選び方モデル最適化指標・評価指標の選び方
モデル最適化指標・評価指標の選び方幹雄 小川
 
卒論発表スライド
卒論発表スライド卒論発表スライド
卒論発表スライドYoshiki Iida
 
Apple Watchを使い倒す 〜Watchから取れるデータとその活用法〜
Apple Watchを使い倒す 〜Watchから取れるデータとその活用法〜Apple Watchを使い倒す 〜Watchから取れるデータとその活用法〜
Apple Watchを使い倒す 〜Watchから取れるデータとその活用法〜Atsushi Otsubo
 
電子工作のための電子回路基礎ー後編
電子工作のための電子回路基礎ー後編電子工作のための電子回路基礎ー後編
電子工作のための電子回路基礎ー後編fumi_maker
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Preferred Networks
 
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...JunSuzuki21
 
研究法(Claimとは)
研究法(Claimとは)研究法(Claimとは)
研究法(Claimとは)Jun Rekimoto
 
アルゴリズムのイメージを擬人化する
アルゴリズムのイメージを擬人化するアルゴリズムのイメージを擬人化する
アルゴリズムのイメージを擬人化するAtCoder Inc.
 
SSII2022 [OS3-02] Federated Learningの基礎と応用
SSII2022 [OS3-02] Federated Learningの基礎と応用SSII2022 [OS3-02] Federated Learningの基礎と応用
SSII2022 [OS3-02] Federated Learningの基礎と応用SSII
 
PredCNN: Predictive Learning with Cascade Convolutions
PredCNN: Predictive Learning with Cascade ConvolutionsPredCNN: Predictive Learning with Cascade Convolutions
PredCNN: Predictive Learning with Cascade Convolutionsharmonylab
 
[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...
[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...
[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...Deep Learning JP
 
【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...
【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...
【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...Deep Learning JP
 
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみたDeep Learning Lab(ディープラーニング・ラボ)
 
[Tutorial] Sentence Representation
[Tutorial] Sentence Representation[Tutorial] Sentence Representation
[Tutorial] Sentence RepresentationHiroki Shimanaka
 
#FTMA15 第二回課題 鬼コースサーベイ
#FTMA15 第二回課題 鬼コースサーベイ#FTMA15 第二回課題 鬼コースサーベイ
#FTMA15 第二回課題 鬼コースサーベイYoichi Ochiai
 

What's hot (20)

[DL輪読会]Object-Centric Learning with Slot Attention
[DL輪読会]Object-Centric Learning with Slot Attention[DL輪読会]Object-Centric Learning with Slot Attention
[DL輪読会]Object-Centric Learning with Slot Attention
 
モデル最適化指標・評価指標の選び方
モデル最適化指標・評価指標の選び方モデル最適化指標・評価指標の選び方
モデル最適化指標・評価指標の選び方
 
卒論発表スライド
卒論発表スライド卒論発表スライド
卒論発表スライド
 
Apple Watchを使い倒す 〜Watchから取れるデータとその活用法〜
Apple Watchを使い倒す 〜Watchから取れるデータとその活用法〜Apple Watchを使い倒す 〜Watchから取れるデータとその活用法〜
Apple Watchを使い倒す 〜Watchから取れるデータとその活用法〜
 
電子工作のための電子回路基礎ー後編
電子工作のための電子回路基礎ー後編電子工作のための電子回路基礎ー後編
電子工作のための電子回路基礎ー後編
 
人工知能概論 7
人工知能概論 7人工知能概論 7
人工知能概論 7
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
 
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
 
研究法(Claimとは)
研究法(Claimとは)研究法(Claimとは)
研究法(Claimとは)
 
アルゴリズムのイメージを擬人化する
アルゴリズムのイメージを擬人化するアルゴリズムのイメージを擬人化する
アルゴリズムのイメージを擬人化する
 
SSII2022 [OS3-02] Federated Learningの基礎と応用
SSII2022 [OS3-02] Federated Learningの基礎と応用SSII2022 [OS3-02] Federated Learningの基礎と応用
SSII2022 [OS3-02] Federated Learningの基礎と応用
 
PredCNN: Predictive Learning with Cascade Convolutions
PredCNN: Predictive Learning with Cascade ConvolutionsPredCNN: Predictive Learning with Cascade Convolutions
PredCNN: Predictive Learning with Cascade Convolutions
 
[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...
[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...
[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...
 
【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...
【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...
【DL輪読会】SDEdit: Guided Image Synthesis and Editing with Stochastic Differentia...
 
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた
 
卒論
卒論 卒論
卒論
 
[Tutorial] Sentence Representation
[Tutorial] Sentence Representation[Tutorial] Sentence Representation
[Tutorial] Sentence Representation
 
ご注文はSTM32の開発ですか?
ご注文はSTM32の開発ですか?ご注文はSTM32の開発ですか?
ご注文はSTM32の開発ですか?
 
#FTMA15 第二回課題 鬼コースサーベイ
#FTMA15 第二回課題 鬼コースサーベイ#FTMA15 第二回課題 鬼コースサーベイ
#FTMA15 第二回課題 鬼コースサーベイ
 
Deep sets
Deep setsDeep sets
Deep sets
 

Viewers also liked

SKIコンビネーターによる処理系の作成
SKIコンビネーターによる処理系の作成SKIコンビネーターによる処理系の作成
SKIコンビネーターによる処理系の作成Nobutada Matsubara
 
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !Nobutada Matsubara
 
こんなに簡単、クラッキング!
こんなに簡単、クラッキング!こんなに簡単、クラッキング!
こんなに簡単、クラッキング!歩 奥山
 
「シン・テストエンジニアのキャリアについて: Q裏 甘口」 wacate_2016_winter
「シン・テストエンジニアのキャリアについて: Q裏  甘口」 wacate_2016_winter「シン・テストエンジニアのキャリアについて: Q裏  甘口」 wacate_2016_winter
「シン・テストエンジニアのキャリアについて: Q裏 甘口」 wacate_2016_winter久仁朗 山本(旧姓 村上)
 
ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?Yuya Rin
 
STAC 2015 自動家は見た ~自動化の現場の真実~ SIDE:マネージャ
STAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャSTAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャ
STAC 2015 自動家は見た ~自動化の現場の真実~ SIDE:マネージャNoriyuki Mizuno
 
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015 「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015 Kazuhito Miura
 
本当は楽しいインターネット
本当は楽しいインターネット本当は楽しいインターネット
本当は楽しいインターネットYuya Rin
 
テストは料理だ!テストのレシピを見てみよう #wacate
テストは料理だ!テストのレシピを見てみよう #wacateテストは料理だ!テストのレシピを見てみよう #wacate
テストは料理だ!テストのレシピを見てみよう #wacateKazuhiro Takehana
 

Viewers also liked (10)

Xamarin はじめました
Xamarin はじめましたXamarin はじめました
Xamarin はじめました
 
SKIコンビネーターによる処理系の作成
SKIコンビネーターによる処理系の作成SKIコンビネーターによる処理系の作成
SKIコンビネーターによる処理系の作成
 
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
 
こんなに簡単、クラッキング!
こんなに簡単、クラッキング!こんなに簡単、クラッキング!
こんなに簡単、クラッキング!
 
「シン・テストエンジニアのキャリアについて: Q裏 甘口」 wacate_2016_winter
「シン・テストエンジニアのキャリアについて: Q裏  甘口」 wacate_2016_winter「シン・テストエンジニアのキャリアについて: Q裏  甘口」 wacate_2016_winter
「シン・テストエンジニアのキャリアについて: Q裏 甘口」 wacate_2016_winter
 
ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?
 
STAC 2015 自動家は見た ~自動化の現場の真実~ SIDE:マネージャ
STAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャSTAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャ
STAC 2015 自動家は見た ~自動化の現場の真実~ SIDE:マネージャ
 
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015 「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
 
本当は楽しいインターネット
本当は楽しいインターネット本当は楽しいインターネット
本当は楽しいインターネット
 
テストは料理だ!テストのレシピを見てみよう #wacate
テストは料理だ!テストのレシピを見てみよう #wacateテストは料理だ!テストのレシピを見てみよう #wacate
テストは料理だ!テストのレシピを見てみよう #wacate
 

Similar to Lisperはじめました

Lisper はじめました (再)
Lisper はじめました (再)Lisper はじめました (再)
Lisper はじめました (再)Nobutada Matsubara
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Ransui Iso
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Ransui Iso
 
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったかm2ym
 
(call/cc (lambda (cont) (cont 知見)))
(call/cc (lambda (cont) (cont 知見)))(call/cc (lambda (cont) (cont 知見)))
(call/cc (lambda (cont) (cont 知見)))Susisu
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミングOuka Yuka
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Ransui Iso
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトTaketo Sano
 
続・SECDマシン
続・SECDマシン続・SECDマシン
続・SECDマシンt-sin
 
「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04Minoru Chikamune
 
おいしいLisp
おいしいLispおいしいLisp
おいしいLispKent Ohashi
 
言語処理系入門4
言語処理系入門4言語処理系入門4
言語処理系入門4Kenta Hattori
 
SwiftでRiemann球面を扱う
SwiftでRiemann球面を扱うSwiftでRiemann球面を扱う
SwiftでRiemann球面を扱うhayato iida
 
Proof summit2014mizar
Proof summit2014mizarProof summit2014mizar
Proof summit2014mizarAlcor80UMa
 
EusLispでロボットプログラミング
EusLispでロボットプログラミングEusLispでロボットプログラミング
EusLispでロボットプログラミングHiroaki Yaguchi
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装したt-sin
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装MITSUNARI Shigeo
 

Similar to Lisperはじめました (20)

Lisper はじめました (再)
Lisper はじめました (再)Lisper はじめました (再)
Lisper はじめました (再)
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
 
たのしい関数型
たのしい関数型たのしい関数型
たのしい関数型
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
 
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
 
(call/cc (lambda (cont) (cont 知見)))
(call/cc (lambda (cont) (cont 知見)))(call/cc (lambda (cont) (cont 知見)))
(call/cc (lambda (cont) (cont 知見)))
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
 
続・SECDマシン
続・SECDマシン続・SECDマシン
続・SECDマシン
 
「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04
 
Lisp study
Lisp studyLisp study
Lisp study
 
おいしいLisp
おいしいLispおいしいLisp
おいしいLisp
 
言語処理系入門4
言語処理系入門4言語処理系入門4
言語処理系入門4
 
SwiftでRiemann球面を扱う
SwiftでRiemann球面を扱うSwiftでRiemann球面を扱う
SwiftでRiemann球面を扱う
 
Proof summit2014mizar
Proof summit2014mizarProof summit2014mizar
Proof summit2014mizar
 
EusLispでロボットプログラミング
EusLispでロボットプログラミングEusLispでロボットプログラミング
EusLispでロボットプログラミング
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 

More from Nobutada Matsubara

More from Nobutada Matsubara (20)

Haskell で作る競技型イベントの裏側
Haskell で作る競技型イベントの裏側Haskell で作る競技型イベントの裏側
Haskell で作る競技型イベントの裏側
 
Marp Next Theme: Colors
Marp Next Theme: ColorsMarp Next Theme: Colors
Marp Next Theme: Colors
 
Marp Next Tips !
Marp Next Tips !Marp Next Tips !
Marp Next Tips !
 
Haskell で CLI
Haskell で CLIHaskell で CLI
Haskell で CLI
 
貧者のための「cron」
貧者のための「cron」貧者のための「cron」
貧者のための「cron」
 
Build Dockferile with Haskell
Build Dockferile with HaskellBuild Dockferile with Haskell
Build Dockferile with Haskell
 
Elixir Programming with Type checking
Elixir Programming with Type checkingElixir Programming with Type checking
Elixir Programming with Type checking
 
MixML 作ってみる
MixML 作ってみるMixML 作ってみる
MixML 作ってみる
 
Elm でなんかつくる
Elm でなんかつくるElm でなんかつくる
Elm でなんかつくる
 
Haskell と Elm と JSON の話
Haskell と Elm と JSON の話Haskell と Elm と JSON の話
Haskell と Elm と JSON の話
 
ADVENTAR の Bot を作る with Haskell
ADVENTAR の Bot を作る with HaskellADVENTAR の Bot を作る with Haskell
ADVENTAR の Bot を作る with Haskell
 
Haskell Backpack 事始め
Haskell Backpack 事始めHaskell Backpack 事始め
Haskell Backpack 事始め
 
GitHub での Haskell の色が変わったんで
GitHub での Haskell の色が変わったんでGitHub での Haskell の色が変わったんで
GitHub での Haskell の色が変わったんで
 
日記って続かないよね...
日記って続かないよね...日記って続かないよね...
日記って続かないよね...
 
「7つの言語、7つの世界」を読む
「7つの言語、7つの世界」を読む「7つの言語、7つの世界」を読む
「7つの言語、7つの世界」を読む
 
Haskell で LINE Bot を作ってみた
Haskell で LINE Bot を作ってみたHaskell で LINE Bot を作ってみた
Haskell で LINE Bot を作ってみた
 
Marp colors
Marp colorsMarp colors
Marp colors
 
Marp Tips
Marp TipsMarp Tips
Marp Tips
 
Whitespcae 入門
Whitespcae 入門Whitespcae 入門
Whitespcae 入門
 
Ruby4Ctf
Ruby4CtfRuby4Ctf
Ruby4Ctf
 

Lisperはじめました