indexとtabulateとpositionsの意味
Representable型クラスのmethodの、命名の意味
明らかに圏論由来の命名ではなく、
ユースケースに沿った命名が為されている
index
関数indexは、
与えられたStream aに対し、
位置(いわゆるインデックス)nに対応する要素xを返す
具体化した型を見ればわかりやすい
index :: Stream a -> Integer -> a
単純にインデックスを指定して対応する要素を取得するのでindexという名前なんだろう
近い名前で言えばlookupとか
tabulate
関数tabulateは、
「位置nに対応する要素xを返す」関数から
Stream aを生成する
具体化した型を見ればわかりやすい
tabulate :: (Integer -> a) -> Stream a
Streamの場合は、与えられた規則に則った無限列を作る関数
tabulate :: 規則 -> 無限列
tabulateは直訳すると表形式
表形式のイメージ
https://gyazo.com/0e4a9fc8fec0e4ff138d066e3b0c954b
この図のfとかgとか書かれているところは、関数を表形式で定義したものである
table:関数fを表形式で定義
input 0 1 2 ..
output 0 0 0 ..
表形式(tabulate)を作成するための関数なのでtabulateという名前なんだろう
説明の中の自然な英語でtabulateが出現してる例
The representing object, the type a in C(a, -), is thought of as the key type, with which we can access the tabulated values of a function. ref representing objectは、Rep fのことmrsekut.icon
Stream aの例で言えばIntegerのこと
indexは、「key」とも言える
positions
index :: コンテナ -> インデックス → そこの値、tabulate :: 規則 -> コンテナと言い表すと、
positionsはインデックスのコンテナを表す
「positions」は直訳すると「位置」
インデックスのコンテナなので、インデックス集
だから「位置たち」
と言われればそんな気もするmrsekut.icon