値
#Fleeting_Notes
値(value)
文脈によって微妙な差がある?
操作的意味論では、項を評価した最終結果が正規形なものは値?
v ::= true | false
評価の最終結果が正規系のものは値である
式から値になる?
プロセスベース
code:mermaid
flowchart LR
ファイルI/O -->|文字| 字句解析
字句解析 -->|トークン| 構文解析
構文解析 -->|項| 評価
評価 -->|値| 表示
対象ベース
code:mermaid
flowchart LR
文字 -->|"字句解析(lex)"| トークン
トークン -->|"構文解析(parsing)"| 項
項 -->|"評価(eval)"| 値
値 -->|"表示(print)"| 文字
Martin-Löf型理論あたりではbが型A上の族Bの断面(section)であるとき、$ b(a) が値
code:memo
A := Nat
B(n) := Vector String n
b : Π(n : Nat), Vector String n
b(n) := 長さnのベクトル
b(3)が値
Lean 4で#evalすると型クラスが混じるのでちょっと説明が難しい
code:lean
import Init.Data.Vector.Basic
def B (n : Nat) := Vector String n
def b : (n : Nat) → Vector String n :=
fun n => Vector.replicate n ""
#check b 3 -- Vector String 3
#eval b 3 -- { toArray := #"", "", size_toArray := _ }
#eval (b 3).toList -- "", ""
確認用
Q. 値
関連
ファイバー
項
データ型
definitional equality
操作的意味論
値呼び(call by value)
遅延評価
正格評価
参考
『型システム入門 : プログラミング言語と型の理論』 P25, P38
『Introduction to Homotopy Type Theory』 P8
E. Rijke, “Introduction to Homotopy Type Theory”. Dec. 21, 2022, arXiv: 2212.11082. doi: 10.48550
メモ
『新装版 プログラミング言語の基礎理論』 P85, P89
型推論に関わる論理の概念と用語 その1 - 檜山正幸のキマイラ飼育記 (はてなBlog)
型推論に関わる論理の概念と用語 その3 - 檜山正幸のキマイラ飼育記 (はてなBlog)
調査用
Google.icon 値(日)
Google.icon Value(英)
Wikipedia.icon
値 - Wikipedia(日)
値(検索) - Wikipedia(日)
Wikipedia.icon
Value - Wikipedia(英)
Value(検索) - Wikipedia(英)