Suche senden
Hochladen
Lisp study
•
3 gefällt mir
•
2,463 views
Taichi Kimura
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 46
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々
Peinan ZHANG
Material
Material
_TUNE_
Extensible Eff Applicative
Extensible Eff Applicative
Sanshiro Yoshida
Freer Monads, More Extensible Effects
Freer Monads, More Extensible Effects
Hiromi Ishii
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみた
blackenedgold
ヒカリノアトリエ演出「アバターと手から粒子」
ヒカリノアトリエ演出「アバターと手から粒子」
Atelier Frameworks
XMonad-oid on Emacs & More functional Emacs Lisp | 関数型LT大会
XMonad-oid on Emacs & More functional Emacs Lisp | 関数型LT大会
Takeshi Okada
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
Nozomu Kaneko
Empfohlen
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々
Peinan ZHANG
Material
Material
_TUNE_
Extensible Eff Applicative
Extensible Eff Applicative
Sanshiro Yoshida
Freer Monads, More Extensible Effects
Freer Monads, More Extensible Effects
Hiromi Ishii
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみた
blackenedgold
ヒカリノアトリエ演出「アバターと手から粒子」
ヒカリノアトリエ演出「アバターと手から粒子」
Atelier Frameworks
XMonad-oid on Emacs & More functional Emacs Lisp | 関数型LT大会
XMonad-oid on Emacs & More functional Emacs Lisp | 関数型LT大会
Takeshi Okada
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
Nozomu Kaneko
Sml#探検隊
Sml#探検隊
Hiroki Mizuno
言語処理系入門6
言語処理系入門6
Kenta Hattori
kollectionの紹介
kollectionの紹介
Kota Mizushima
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
Haruka Oikawa
たのしい高階関数
たのしい高階関数
Shinichi Kozake
F#とC#で見る関数志向プログラミング
F#とC#で見る関数志向プログラミング
satoshimurakumo
Testman
Testman
makoto tsuyuki
これから Haskell を書くにあたって
これから Haskell を書くにあたって
Tsuyoshi Matsudate
Move semantics
Move semantics
mitsutaka_takeda
関数プログラミング入門
関数プログラミング入門
Hideyuki Tanaka
Lisp講義1
Lisp講義1
stibear (stibear1996)
Haskell超入門 Part.1
Haskell超入門 Part.1
Yuichi Watanabe
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Tomohiro Kumagai
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
TanUkkii
Erlang で再帰
Erlang で再帰
snow long
Haskell超初心者勉強会20
Haskell超初心者勉強会20
Takashi Kawachi
Hokuriku Scala 1
Hokuriku Scala 1
NISHIMOTO Keisuke
言語処理系入門4
言語処理系入門4
Kenta Hattori
モナドをつくろう
モナドをつくろう
dico_leque
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
Yuichi Sakuraba
kitproライトニングトーク
kitproライトニングトーク
Taichi Kimura
暗黒美夢王とEmacs
暗黒美夢王とEmacs
Shougo
Weitere ähnliche Inhalte
Was ist angesagt?
Sml#探検隊
Sml#探検隊
Hiroki Mizuno
言語処理系入門6
言語処理系入門6
Kenta Hattori
kollectionの紹介
kollectionの紹介
Kota Mizushima
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
Haruka Oikawa
たのしい高階関数
たのしい高階関数
Shinichi Kozake
F#とC#で見る関数志向プログラミング
F#とC#で見る関数志向プログラミング
satoshimurakumo
Testman
Testman
makoto tsuyuki
これから Haskell を書くにあたって
これから Haskell を書くにあたって
Tsuyoshi Matsudate
Move semantics
Move semantics
mitsutaka_takeda
関数プログラミング入門
関数プログラミング入門
Hideyuki Tanaka
Lisp講義1
Lisp講義1
stibear (stibear1996)
Haskell超入門 Part.1
Haskell超入門 Part.1
Yuichi Watanabe
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Tomohiro Kumagai
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
TanUkkii
Erlang で再帰
Erlang で再帰
snow long
Haskell超初心者勉強会20
Haskell超初心者勉強会20
Takashi Kawachi
Hokuriku Scala 1
Hokuriku Scala 1
NISHIMOTO Keisuke
言語処理系入門4
言語処理系入門4
Kenta Hattori
モナドをつくろう
モナドをつくろう
dico_leque
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
Yuichi Sakuraba
Was ist angesagt?
(20)
Sml#探検隊
Sml#探検隊
言語処理系入門6
言語処理系入門6
kollectionの紹介
kollectionの紹介
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
たのしい高階関数
たのしい高階関数
F#とC#で見る関数志向プログラミング
F#とC#で見る関数志向プログラミング
Testman
Testman
これから Haskell を書くにあたって
これから Haskell を書くにあたって
Move semantics
Move semantics
関数プログラミング入門
関数プログラミング入門
Lisp講義1
Lisp講義1
Haskell超入門 Part.1
Haskell超入門 Part.1
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
Erlang で再帰
Erlang で再帰
Haskell超初心者勉強会20
Haskell超初心者勉強会20
Hokuriku Scala 1
Hokuriku Scala 1
言語処理系入門4
言語処理系入門4
モナドをつくろう
モナドをつくろう
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
Andere mochten auch
kitproライトニングトーク
kitproライトニングトーク
Taichi Kimura
暗黒美夢王とEmacs
暗黒美夢王とEmacs
Shougo
Designing Teams for Emerging Challenges
Designing Teams for Emerging Challenges
Aaron Irizarry
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and Archives
Ned Potter
Visual Design with Data
Visual Design with Data
Seth Familian
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
Andere mochten auch
(7)
kitproライトニングトーク
kitproライトニングトーク
暗黒美夢王とEmacs
暗黒美夢王とEmacs
Designing Teams for Emerging Challenges
Designing Teams for Emerging Challenges
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and Archives
Visual Design with Data
Visual Design with Data
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Ähnlich wie Lisp study
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
Ransui Iso
たのしい関数型
たのしい関数型
Shinichi Kozake
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
Ransui Iso
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)
啓 小笠原
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
Ransui Iso
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
Ra Zon
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
Ra Zon
Lispでやる記号微分
Lispでやる記号微分
Keiichi Watanabe
Lisperはじめました
Lisperはじめました
Nobutada Matsubara
What Dotty fixes @ Scala関西サミット
What Dotty fixes @ Scala関西サミット
Taisuke Oe
モナドハンズオン前座
モナドハンズオン前座
bleis tift
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
blackenedgold
Scalamacrosについて
Scalamacrosについて
dekosuke
第一回ゆるふわーる
第一回ゆるふわーる
Sachiko Hirata
Lisp batton - Common LISP
Lisp batton - Common LISP
Masaomi CHIBA
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
Taketo Sano
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
x1 ichi
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
m2ym
Processing
Processing
Akifumi Nambu
Shibuya.el
Shibuya.el
uk-ar
Ähnlich wie Lisp study
(20)
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
たのしい関数型
たのしい関数型
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
Lispでやる記号微分
Lispでやる記号微分
Lisperはじめました
Lisperはじめました
What Dotty fixes @ Scala関西サミット
What Dotty fixes @ Scala関西サミット
モナドハンズオン前座
モナドハンズオン前座
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
Scalamacrosについて
Scalamacrosについて
第一回ゆるふわーる
第一回ゆるふわーる
Lisp batton - Common LISP
Lisp batton - Common LISP
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
Processing
Processing
Shibuya.el
Shibuya.el
Kürzlich hochgeladen
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Kürzlich hochgeladen
(8)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
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.
気に入らない部分があれば 自分の手になじむように カスタマイズ
Jetzt herunterladen