Submit Search
Lisp study
3 likes
2,466 views
Taichi Kimura
1 of 46
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
More Related Content
PDF
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々
Peinan ZHANG
PDF
Material
_TUNE_
PDF
Extensible Eff Applicative
Sanshiro Yoshida
PDF
Freer Monads, More Extensible Effects
Hiromi Ishii
ODP
Real World OCamlを読んでLispと協調してみた
blackenedgold
PPTX
ヒカリノアトリエ演出「アバターと手から粒子」
Atelier Frameworks
PPTX
XMonad-oid on Emacs & More functional Emacs Lisp | 関数型LT大会
Takeshi Okada
PDF
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
Nozomu Kaneko
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々
Peinan ZHANG
Material
_TUNE_
Extensible Eff Applicative
Sanshiro Yoshida
Freer Monads, More Extensible Effects
Hiromi Ishii
Real World OCamlを読んでLispと協調してみた
blackenedgold
ヒカリノアトリエ演出「アバターと手から粒子」
Atelier Frameworks
XMonad-oid on Emacs & More functional Emacs Lisp | 関数型LT大会
Takeshi Okada
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
Nozomu Kaneko
What's hot
(20)
KEY
Sml#探検隊
Hiroki Mizuno
PPT
言語処理系入門6
Kenta Hattori
PDF
kollectionの紹介
Kota Mizushima
PDF
関数型プログラミング入門 with OCaml
Haruka Oikawa
PDF
たのしい高階関数
Shinichi Kozake
ODP
F#とC#で見る関数志向プログラミング
satoshimurakumo
PDF
Testman
makoto tsuyuki
PDF
これから Haskell を書くにあたって
Tsuyoshi Matsudate
PDF
Move semantics
mitsutaka_takeda
PDF
関数プログラミング入門
Hideyuki Tanaka
PDF
Lisp講義1
stibear (stibear1996)
PDF
Haskell超入門 Part.1
Yuichi Watanabe
PDF
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Tomohiro Kumagai
PDF
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
TanUkkii
PDF
Erlang で再帰
snow long
PDF
Haskell超初心者勉強会20
Takashi Kawachi
PDF
Hokuriku Scala 1
NISHIMOTO Keisuke
PPT
言語処理系入門4
Kenta Hattori
PDF
モナドをつくろう
dico_leque
PDF
Fork/Join Framework。そしてLambdaへ。
Yuichi Sakuraba
Sml#探検隊
Hiroki Mizuno
言語処理系入門6
Kenta Hattori
kollectionの紹介
Kota Mizushima
関数型プログラミング入門 with OCaml
Haruka Oikawa
たのしい高階関数
Shinichi Kozake
F#とC#で見る関数志向プログラミング
satoshimurakumo
Testman
makoto tsuyuki
これから Haskell を書くにあたって
Tsuyoshi Matsudate
Move semantics
mitsutaka_takeda
関数プログラミング入門
Hideyuki Tanaka
Lisp講義1
stibear (stibear1996)
Haskell超入門 Part.1
Yuichi Watanabe
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Tomohiro Kumagai
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
TanUkkii
Erlang で再帰
snow long
Haskell超初心者勉強会20
Takashi Kawachi
Hokuriku Scala 1
NISHIMOTO Keisuke
言語処理系入門4
Kenta Hattori
モナドをつくろう
dico_leque
Fork/Join Framework。そしてLambdaへ。
Yuichi Sakuraba
Ad
Viewers also liked
(7)
PDF
kitproライトニングトーク
Taichi Kimura
PDF
暗黒美夢王とEmacs
Shougo
PDF
Designing Teams for Emerging Challenges
Aaron Irizarry
PDF
UX, ethnography and possibilities: for Libraries, Museums and Archives
Ned Potter
PDF
Visual Design with Data
Seth Familian
PDF
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
PDF
How to Become a Thought Leader in Your Niche
Leslie Samuel
kitproライトニングトーク
Taichi Kimura
暗黒美夢王とEmacs
Shougo
Designing Teams for Emerging Challenges
Aaron Irizarry
UX, ethnography and possibilities: for Libraries, Museums and Archives
Ned Potter
Visual Design with Data
Seth Familian
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
How to Become a Thought Leader in Your Niche
Leslie Samuel
Ad
Similar to Lisp study
(20)
PDF
Lisp tutorial for Pythonista : Day 2
Ransui Iso
PDF
Lisp Tutorial for Pythonista : Day 3
Ransui Iso
PDF
PythonでLispを実装した (evalつき)
t-sin
ODP
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
m2ym
PDF
Lisp tutorial for Pythonista : Day 1
Ransui Iso
PDF
快適Emacs lisp生活を目指して
uk-ar
PPTX
(Lambdaだけで)純LISPのようなナニかを作る
Daichi Teruya
PDF
10分で分かるR言語入門ver2.1
Nobuaki Oshiro
PDF
M-expr
komiyamb
PDF
初めてのHaskell (表)
karky7
PPTX
Gaucheでマクロを書こう
Hideaki Nagamine
PDF
Lispとは何なのか - 同図像性がもたらす力とその利用法
Naoya Yamashita
PDF
純LISPから考える関数型言語のプリミティブ: Clojure, Elixir, Haskell, Scala
Kent Ohashi
PDF
10分で分かるR言語入門ver2_0906
Nobuaki Oshiro
PDF
プログラミングHaskell(第2章)
yaju88
PDF
Elixirだ 第1回強化版 前半
Joe_noh
ODP
Vim scriptとJavaとHaskell
aiya000
PDF
Proof and Emacs
dico_leque
PDF
Haskell Lecture 1
Yusuke Matsushita
PPTX
Ocaml lecture slides 01 at axsh
Tomofumi Hayashi
Lisp tutorial for Pythonista : Day 2
Ransui Iso
Lisp Tutorial for Pythonista : Day 3
Ransui Iso
PythonでLispを実装した (evalつき)
t-sin
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
m2ym
Lisp tutorial for Pythonista : Day 1
Ransui Iso
快適Emacs lisp生活を目指して
uk-ar
(Lambdaだけで)純LISPのようなナニかを作る
Daichi Teruya
10分で分かるR言語入門ver2.1
Nobuaki Oshiro
M-expr
komiyamb
初めてのHaskell (表)
karky7
Gaucheでマクロを書こう
Hideaki Nagamine
Lispとは何なのか - 同図像性がもたらす力とその利用法
Naoya Yamashita
純LISPから考える関数型言語のプリミティブ: Clojure, Elixir, Haskell, Scala
Kent Ohashi
10分で分かるR言語入門ver2_0906
Nobuaki Oshiro
プログラミングHaskell(第2章)
yaju88
Elixirだ 第1回強化版 前半
Joe_noh
Vim scriptとJavaとHaskell
aiya000
Proof and Emacs
dico_leque
Haskell Lecture 1
Yusuke Matsushita
Ocaml lecture slides 01 at axsh
Tomofumi Hayashi
Lisp study
1.
Lisp勉強会 2012.10.07@cafe?IKAGAWA DO 14:00~17:00
2.
( 始める前に注意点 (
Lispそこまで詳しくない ) ( 途中いきつまる可能性がある ) ) → みんなで教え合って解決していきたい
3.
準備 • Emacs もしくは
xyzzy のインストール できてますか?
4.
勉強会の流れ
5.
Lispの考え方
Lispの文法 Lispの演習 Emacs,xyzzy カスタマイズ
6.
Lisp 考え方
7.
Lispの二大重要単語
リスト (list) リストとは括弧で 括ったもの アトム 例 (atom) (emacs vim xyzzy) ("睦月" "如月" "弥生" "卯月")
8.
リストの中にあるものがアトム
コレ アトム 例 (atom) (emacs vim xyzzy) ("睦月" "如月" "弥生" "卯月")
9.
((emacs) vim xyzzy) これは、アトムです これは、リストの中にリストがあると考える
10.
S式 リスト
アトム (list) (atom)
11.
Lisp 文法
+演習
12.
基本 リストで括って作る。 Lispの由来
「List Programing」
13.
プログラミング言語なので関数を利用 していきます。
14.
(関数名 引数1 引数2
…) 関数以外のものは シングルクォーテーションを 例 つける。 (car ‘(a b)) 関数 car
15.
関数を入れ子構造で書いて使っていく。 (関数2 (関数1 引数1
引数2 …)) ※使う関数が増えると括弧が複雑になるので注意
16.
Lisp基本関数 car cdr
cons
17.
car 関数の紹介 (car ‘(helloworld
goodbyeworld world)) を動かしてみてください ① scratchバッファを選んで プログラムを入力 ② ctrl J プログラム入力直後のこの 位置にカーソルを置く!
18.
car関数 (helloworld goodbyeworld world)
先頭要素を取り出す関数 helloworld
19.
演習問題 先ほどの演習をもとに次のリストから Appleを取り出してください。 ((Apple) Banana Orange) ※注意点 リストの先頭にシングルクォーテーションを付ける。 実行は
ctrl J です。
20.
• 回答 (car (car
‘((Apple) Banana Orange)))
21.
cdr関数の紹介 演習
(cdr ‘((Apple) Banana Orange)) を動かしてみてください carの残りをリストで返す (Banana Orange)
22.
演習問題 これまでの演習をもとに次のリストから Bananaもしくは(Banana)を取り出してください。 ((Apple Banana) Orange) ※注意点 リストの先頭にシングルクォーテーションを付ける。 実行は
ctrl J です。
23.
• 回答 (car (cdr
(car '((Apple Banana) Orange)))) (cdr (car '((Apple Banana) Orange)))
24.
setq関数の紹介 (car (cdr (car
'((Apple Banana) Orange)))) …だんだんと長くなってきて読みにくい。 そうだ!変数宣言だ。 (setq x '((Apple Banana) Orange)) (car (cdr (car x)))
25.
cons関数の紹介 演習
(cons ‘a ‘((Apple) Banana Orange)) を動かしてみてください 一つ目の引数アトムを先頭に 加えたリストを返す (a (Apple) Banana Orange) ※注意点 (cons atom list) のように一つ目の引数をアトム 二つ目の引数をリストとする。
26.
演習問題 事前に (setq s ‘Apple) (setq
l ‘(Banana (Orange Grape))) として、変数宣言してください。 これまでに紹介した関数 「car」「cdr」「cons」 を用いて、上で宣言した二つの変数から、 (Apple Orange) というリストを返すプログラムを作ってください。
27.
• 回答 (setq s
'Apple) (setq l '(Banana (Orenge Grape))) (cons s (cdr (car (cdr l))))
28.
条件式関係の関数などの紹介 cond
t null or eq nil
29.
eq 引数二つが同じものか確かめる関数 (eq ‘a ‘a)
→ t or 引数のどれかが t の時 t を返す (or (eq ‘a ‘a ) (eq ‘a ‘b )) → t cond 条件式
30.
t…リスト、アトム、t nil…それ以外 (eq ‘a ‘b) nil
31.
cond関数の紹介 ① (setq l
‘(Apple Banana Orenge)) ② (setq l ‘(Banana Orenge)) ③ (setq l ‘(Orenge Banana)) (cond ((eq (car l) ‘Apple) t) ①の時 t を返す! ((eq (car l) ‘Banana) (car l)) ②の時 Bananaを返す! (t nil)) ③の時 nil を返す! C言語のswitch-Case文でいうdefault文
32.
関数を作る関数の紹介 defun関数 (defun 関数名 (引数)
処理 )
33.
例 car関数の動きをするfirster関数を作る ※リストの一番目の要素を取り出す関数 (defun firster (l)
(car l) )
34.
問題 リストの2番目の要素を取り出す関 数「seconder」を作ってください! (defun 関数名 (引数)
処理 )
35.
• 回答 (defun seconder
(l) (car (cdr l)) )
36.
null関数の紹介 • null関数はリストが空の時
t を返す (null ‘()) • 加えて、nilが引数の時 t を返す (null nil)
37.
• 再起関数を作ろう!
38.
問題 一つ目の引数アトムが 二つ目の引数リストにある場合t を返す関数 member1を作ってください 。
S…’apple l…’(apple banana orange) (defun member1 (s l) の時はtを返す null…リストが空の時 t (cond ((null l) nil) (t (or (eq (car l) s) (member1 s (cdr l)) ))))
39.
問題 先ほど解説した関数member1を改造して member1がtのとき、aをのぞいたリストを返す 関数member2を作ってみてください。 もしできたら 今夜のプレゼンナイトで ソースレビューもしてみてください。
40.
Emacs , xyzzy
の カスタマイズ
41.
カスタマイズに必要なこと 1. 豊富なEmacs,xyzzy関数を扱うことが必要
define-key beginning-of-buffer … etc 2. カスタマイズファイルが必要 ~/.emacs ~/.xyzzy 3. デバッグが必要 scratchバッファを使う
42.
キーボードの設定 必要な関数 global-set-key キーを設定する関数 (global-set-key
"¥C-h" 'delete-backward-char) もしうまく動かなかったら (define-key global-map (kbd "C-h") 'delete-backward-char)
43.
エディタを開いた状態で
ctrl x を押してください そのあとに F を押してください パスは関係ないとして、上のようにパスと ファイル名 .xyzzyもしくは、.emacsと書いてください。
44.
• さきほどscratchに書いたキーボードの設定を
.xyzzy、.emacsに書いておくことで 次回からC-hでbackspaceが使えます。
45.
この調子でどんどんカスタマイズし ていってください。
46.
気に入らない部分があれば 自分の手になじむように カスタマイズ
Download