Можно ли реализовать коллекцию целочисленных значений для любого типа на языке без встроенного типа коллекции? - PullRequest
0 голосов
/ 18 октября 2018

Я начал задумываться над этим вопросом, когда начал баловаться с LOLCODE.LOLCODE имеет 5 типов данных: YARN (строка), TROOF (логическое значение), NUMBR (целое число), NUMBAR (число с плавающей запятой) и NOOB (нетипизированный).Однако в версии 1.2 языка не предусмотрено типов коллекций, что означает отсутствие массивов, списков, словарей или любых других типов встроенных коллекций.

Для того, чтобы бросить вызов себе (и также для lulz), я решил, что я напишу в этой функциональности как пакет для LOLCODE, написанный на LOLCODE.Это было намного сложнее, чем я ожидал, и мне интересно, возможно ли это даже для произвольно больших коллекций динамического размера.

Запрограммировавшись на C раньше, я использовал две методологии для создания коллекций - массивы динамического размера и связанные списки с указателями.Однако, поскольку LOLCODE не имеет ссылочного (указательного) типа, невозможно использовать ни один из этих методов, поскольку нет способа напрямую манипулировать памятью.Подходы машинного уровня не будут работать.

Поработав на некоторых функциональных языках, я начал думать об альтернативных представлениях коллекций.Коллекция теоретически может быть представлена ​​функцией, которая по существу действует как оператор switch, который динамически изменяется при вставке и удалении элементов.Однако у LOLCODE также нет функций первого класса, так что это тоже кажется невозможным

Единственный способ, которым я могу придумать, это создать n уникальных переменных для коллекции размера n - но тогда возникает вопросстановится двояким: «как создать n уникальных переменных для коллекции размера n» и «что происходит, когда коллекция выходит за пределы n элементов»?

TL; DR Я хочу реализовать массивы в LOLCODE v1.2и уже потратили слишком много времени на размышления о том, как это сделать, и исчерпали идеи.Я просто хочу знать, возможно ли создать целочисленную для любого типа коллекцию на языке, который не имеет ее как встроенную - и, возможно, намек на решение!

...