Как отобразить список длинных целых чисел? (Язык Меркурия)

В io.write_list(List(integer), ",", OutputPred, !IO), что такое OutputPred? Я пытаюсь отобразить список целочисленного типа. Список изначально никогда не бывает пустым.


person dogwood    schedule 05.12.2014    source источник


Ответы (2)


io.write_list(MyList, ",", io.write, !IO), где MyList — это список целочисленного типа, приведет к печати/отображению членов MyList. Каждый элемент имеет следующий формат отображения i(1, [integer_value]), так что это неудобный вывод, но он правильный. Пустой список ничего не печатает и не приводит к ошибке.

Альтернативой является io.write(MyList, !IO) и дает тот же результат.

Ответ на вопрос, что такое OutputPred, — io.write. io.print тоже работает.

Эта информация была получена с сайта Mercury.org.

person dogwood    schedule 05.12.2014
comment
или вы можете написать свой собственный предикат и передать его. Это может быть очень универсальным. - person Paul Bone; 06.12.2014

Следующий код Mercury отобразит/распечатает список типа Integer в более распространенной форме: [10, 9, 8,..., 2, 1].

io.write_string(string.join_list(" ,", map(integer.to_string, My_List)), !IO).

Квадратные скобки должны быть добавлены отдельно, и их можно получить с помощью предшествующей и завершающей команд io.write_string.

Оно работает. My_List — это список элементов целочисленного типа.

Эта информация была получена с сайта Mercury.org.

person dogwood    schedule 07.12.2014