プログラミング言語論 プログラミング言語論 演習7 解答と解説 演習7 解答と解説 1.

Slides:



Advertisements
Similar presentations
プログラミング言語論 プログラミング言語の構 文 水野嘉明. 目次 1. プログラミング言語の構文 2. BNF 3. 文脈自由文法 4. 構文図式 2.
Advertisements

プログラミング言語論 第3回 BNF 記法について(演習付き) 篠埜 功. 構文の記述 プログラミング言語の構文はどのように定式化できるか? 例1 : for ループの中に for ループが書ける。 for (i=0; i
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
プログラミング言語論 関数型プログラミング言語 水野嘉明
東京工科大学 コンピュータサイエンス学部 亀田弘之
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング言語としてのR 情報知能学科 白井 英俊.
VBAを通して プログラム言語の基本構造を学ぶ
演習3 最終発表 情報科学科4年 山崎孝裕.
C言語 配列 2016年 吉田研究室.
プログラミング言語論 第6回 型 情報工学科 篠埜 功.
プログラミング言語論 第4回 式の構文、式の評価
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
論理式の表現を数学的に取り扱いやすくするために代数学の助けを借りる.
プログラミング言語論 プログラミング言語論 プログラミング言語論 演習1 解答と解説 演習1解答と解説 1 1.
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
条件式 (Conditional Expressions)
プログラミング論 II 電卓,逆ポーランド記法電卓
プログラミング言語論 プログラミング言語論 ガイダンス 水野 嘉明 ガイダンス 1 1.
Tokuda Lab. NISHIMURA Taichi
電気回路Ⅱ 演習 特別編(数学) 三角関数 オイラーの公式 微分積分 微分方程式 付録 三角関数関連の公式
米澤研究室 全体ミーティング 2010/12/22 M2 渡邊裕貴.
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
Googleのページランク 基本的な仕組は数学的 グラフの行列による表現 隣接行列(推移行列、遷移行列) 固有値と固有ベクトル W大学
9.1 DOMの概要 9.2 DOMプログラミングの基礎 9.3 DOMのプログラミング例
プログラミング言語論 プログラミング言語の基礎 水野嘉明
プログラミング言語論 第3回 BNF記法について(演習付き)
関数と配列とポインタ 1次元配列 2次元配列 配列を使って結果を返す 演習問題
アルゴリズムとプログラミング (Algorithms and Programming)
ソフトウェア制作論 平成30年10月3日.
第7回 条件による繰り返し.
Where is Wumpus Propositional logic (cont…) Reasoning where is wumpus
国立情報学研究所 ソフトウェア研究系 助教授/
 型推論1(単相型) 2007.
Java8について 2014/03/07.
プログラミング言語論 第10回 練習問題解答例 情報工学科 篠埜 功.
データ構造とアルゴリズム論 第9章 木構造 平成29年12月20日 森田 彦.
3.条件式.
4.リスト,シンボル,文字列.
プログラミング言語論 第9回 情報工学科 木村昌臣 篠埜 功.
B演習(言語処理系演習)第2回 田浦.
形式言語とオートマトン 中間試験解答例 2016年11月15実施 中島毅.
15.cons と種々のデータ構造.
2007/6/12(通信コース)2007/6/13(情報コース) 住井
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
第6回レポート解説 条件1 条件2 条件3 月の入力 月、日、曜日の表示 日の入力 曜日の入力
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
Indent.
第14回 前半:ラムダ計算(演習付) 後半:小テスト
PROGRAMMING IN HASKELL
執筆者:難波和明 授業者:寺尾 敦 atsushi [at] si.aoyama.ac.jp
プログラミング言語論 第10回 情報工学科 篠埜 功.
~sumii/class/proenb2010/ml2/
情報処理Ⅱ 2005年1月25日(火) レポート課題2の解説.
2006/6/27(通信コース)2006/7/5(情報コース) 住井
PROGRAMMING IN HASKELL
関数型言語の基礎 型なしl計算 型理論 構成的プログラミング GUIにあらわれる関数概念 PBD VL
~sumii/class/proenb2010/ml5/
extern の意味 (C プログラミング演習,Visual Studio 2019 対応)
PROGRAMMING IN HASKELL
情報処理Ⅱ 2007年2月2日(金).
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
プログラミング言語論 プログラミング言語論 演習5 解答と解説 演習5 解答と解説 1 1.
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
情報処理Ⅱ 2006年10月20日(金).
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
Presentation transcript:

プログラミング言語論 プログラミング言語論 演習7 解答と解説 演習7 解答と解説 1

演習7.1 解答と解説 ① (λx.λy.yx)ab →β (λy.ya)b →β ba プログラミング言語論 演習7.1 解答と解説 ① (λx.λy.yx)ab →β (λy.ya)b →β ba ((λx.(λy.yx))a)b と考える ↑ (λx.(λy.yx))a をまず簡約 関数適用は左結合 2 演習7 解答と解説

演習7.1 解答と解説 ② λx.λy.axy →η λx.ax →η a (λx.(λy.axy)) ↑ 内側からη変換 3

演習7.1 簡約の表記について 表記に注意する 以下のような表記は不可 = =β →β 次のような書き方は、ある ⇒ β 4 プログラミング言語論 演習3についての補遺プログラミング言語論 演習7.1 簡約の表記について 表記に注意する 以下のような表記は不可 = =β →β 次のような書き方は、ある ⇒ 4 β プログラミング言語論 4 4

× 演習7.1 簡約の表記について 簡約は、推移的ではない したがって、 λx.λy.axy →η λx.ax →η a プログラミング言語論 演習3についての補遺プログラミング言語論 演習7.1 簡約の表記について 簡約は、推移的ではない したがって、 λx.λy.axy →η λx.ax →η a を、以下のように省略して書くことはできない λx.λy.axy →η a × 5 プログラミング言語論 5 5

演習7.1 簡約の表記について 反射的推移閉包 を定義して、 以下のように書くことは可 λx.λy.axy →* a (関係→を、 演習3についての補遺プログラミング言語論 プログラミング言語論 演習7.1 簡約の表記について 反射的推移閉包 を定義して、 以下のように書くことは可 λx.λy.axy →* a (関係→を、 → = →α∪→β∪→η とし、その反射的推移閉包を →*とする) 期末試験では、この書き方は不可 6 プログラミング言語論 6 6

演習7.1 簡約の表記について 反射的推移閉包については、 「プログラミング言語の基礎」 の 『3.6 反射的推移閉包』 を参照 7

演習7.2 解答 (define fib (lambda (n) (cond ((<= n 0) 0) ((= n 1) 1) (else (+ (fib(- n 1)) (fib(- n 2)) )) ))) 8

演習7.2 解答 (別解) (define fib (lambda (n) (if (<= n 0) 0 (if (= n 1) 1 (+ (fib(- n 1)) (fib(- n 2)) )) ))) 9

演習7.2 解説 改行位置は任意 括弧の数に注意すること 10

演習7.3 (1) 解説 ( i ) は、要素が一つだけのリスト S式は ( i . () ) であり、木にすると となる これを、 love、cats と並べてリストにする i () 11

( (i . ()) . (love . (cats . ())) ) 演習7.3 (1) 解答 i () love () cats ( (i . ()) . (love . (cats . ())) ) 12

(that is x) = (that . (is . (x . () ))) 演習7.3 (2) 解説 x = (the question) とすると、リストは この xを で置き換える (that is x) = (that . (is . (x . () ))) x = (the . (question . () )) 13

(that . (is . ((the . (question . () )) . () ))) 演習7.3 (2) 解答 that is () the question () (that . (is . ((the . (question . () )) . () ))) 14

演習7.4 解説 ((to be) or (not to be) that is (the question)) (or (not to be) that is (the question)) ((not to be) that is (the question)) cdr cdr 15

(that is (the question)) プログラミング言語論 演習7.4 解答 or (1) (2) (that is (the question)) cdr の結果は、常にリストであることに注意する。 注:カッコの有無に注意 16 演習7 解答と解説