#rascal
#rascal
Вопрос:
Я пытаюсь сделать это:
data A = a(str s);
void show(A a(str s)) = println(s);
A x = a("hi");
show(x);
но я получаю эту ошибку:
|prompt:///|(0,7,<1,0>,<1,7>): The called signature: show(A),
does not match the declared signature: void show(node);
Это потому, что в настоящее время это нарушено (как предполагает страница tutor для абстрактных шаблонов с ограничением типов), или я совершаю ошибку?
Ответ №1:
Я думаю, что это должно быть
void show(a(str s)) = println(s);
где вы видели этот A
префикс в tutor?
Комментарии:
1. Спасибо. Я, вероятно, сам придумал этот
A
префикс (перепутав синтаксис для объявлений функций с обычными параметрами и с параметрами шаблона).