В коде ATS я часто вижу два типа списка: list и list0. В чем разница между ними?Почему существуют два типа списков в ATS: list и list0?
0
A
ответ
0
Тип list
, если вы заглядываете в его определение, индексируется по длине.
Тип list0
нет.
Иногда при программировании чрезмерная точность является слишком дорогостоящей с точки зрения производительности. В этих случаях list0
может быть предпочтительнее использовать более list
.
0
Внутренний, list
-значения и list0
-значения имеют то же представление.
Вы можете использовать g0ofg1_list
превратить list
-Value в list0
-Value и g1ofg0_list
превратить list0
-Value в lis
Т-значение. Обратите внимание, что g0ofg1
и g1ofg0
перегружены g0ofg1_list
и g1ofg0_list
, соответственно. Аналогичные функции включают g0ofg1_int
/g1ofg0_int
и g0ofg1_string
/g1ofg0_string
.
На самом деле есть еще один: list_vt для линейных списков. –