Почему Адам Чипала использует вложенные кортежи слева для представления списков Ltac в CPDT? - PullRequest
0 голосов
/ 14 октября 2018

Через CpdtTactics.v:

[...] Успешно, если x находится в списке ls, представлен левым вложенным кортежем.

Ltac inList x ls := match ls with | x => idtac | (_, x) => idtac | (?LS, _) => inList x LS end.

Это кажется нетипичным.Разве хвост списка обычно не входит в правую часть кортежа?

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Каким-то образом n-кортежи - это вложенные пары, связанные слева:

(x, y, z)

десугары в

pair (pair x y) z

И это то, что мы получаем, если хотим написать inList x (x, y, z).

0 голосов
/ 14 октября 2018

Через личное общение с Адамом:

Нет, на самом деле я не могу придумать способ отдать одну версию другой.Мне просто нужно было сделать какой-то выбор для этой части книги.

...