Сделать несколько замен в списке по индексу - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть эта программа, которая делает несколько замен в списке, заданном другим списком, с парами в формате (Index, Elem).

Example:
replace_multiple([A, B, C, D, E], [(2, b), (1, a), (3, c), (4, d)]).
###
should result:
####
Lst = [a, b, c, d, E],
false
####
However this is my output:
A = a,
B = b,
C = c,
D = d
false
####
What am i doing wrong?

1 Ответ

0 голосов
/ 23 апреля 2020

Что я делаю не так?

Вот несколько вещей:

  • Вы можете быть не уверены в том, что список вы хотите заменить содержит элементы, начинающиеся с заглавных букв, то есть логические переменные.
  • В replace_multiple/2 новый элемент описывается как Elem в заголовке, но как Letter в теле.
  • В replace_multiple/2 вызов replace/4 имеет Lst на первой и второй позиции. Значение логической переменной, такой как Lst, совпадает с именем общей глобальной переменной, которая, однако, не может быть изменена, если вы не замените больше логических переменных в этой логической переменной другими вещами. Таким образом, вы имеете ту же структуру, что и «вход» и «выход». Это, вероятно, не то, что вам нужно.
  • То же самое для replace_multiple/2 как такового, что должно принимать Lst и создавать ("возвращать") модифицированный LstMod, заданный в качестве третьего аргумента.
  • В конце replace/4.
  • имеется полная синтаксическая ошибка. Лучше использовать [x,y] или x-y, чем (x,y) в качестве обозначения для пары.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...