пятница, 15 января 2021 г.

Сделал функции get_param и forget

 1980-е были удивительным временем, когда меня спрашивали, зачем человеку компьютер, если он не программист.

Программисты в те времена были особой кастой инженеров, писавших программы для расчётов тех или иных цифр. Они работали на терминалах, подключенных к большим ЭВМ. Одна ЭВМ обслуживала около 100 пользователей.

Появление персонального компьютера всё изменило. Поначалу они не могли тягаться с большими ЭВМ по производительности, но уже к началу 1990-х в индустрии больших ЭВМ наметился кризис, который пережили очень немногие компании.

И вот, наступила эра ПК - у каждого на столе появился компьютер, а затем появился и Интернет.

Но уже до Интернета люди искали возможность соединить вместе два и больше компьютеров, чтобы вместе играть в одну игру.

ПК соединяли вместе, чаще всего в так называемых компьютерных классах. В образовательных учреждениях в конце 1980-х появились классы, в которых стояли компьютеры, на которых учащиеся изучали новый предмет - информатику.

Игровые автоматы стоили дорого и не позволяли вместе играть в одну игру, поэтому люди довольно быстро придумали, что вместо игровых автоматов можно сделать компьютерный класс, на котором люди смогут вместе играть.

Получился довольно прибыльный бизнес. Такие классы назвали Интернет-кафе.

Интернет-кафе существуют и до сих пор, хотя раньше их было намного больше. Сейчас люди играют в основном на своих смартфонах и игровых приставках.

Тем временем я написал сегодня важную функцию - get_param, которая в зависимости от контекста, в котором она вызвана, берёт параметр функции либо из входного потока, либо из кода, либо ей можно указать использовать то значение, которое уже находится на вершине стека.

И первая функция с параметром, которая это использует - это функция forget. Она позволяет удалять объекты из словаря объектов. 

Нынешний вариант позволяет пока удалять только глобальные объекты. Например, нельзя пока удалить метод какого-нибудь класса. Но в будущем я это планирую добавить.

Работа функции forget - из словаря объектов удалён класс Long

Чтобы функция могла различать, удаляется ли объект по индексу или по названию, мне пришлось написать конвертеры токенов для разных типов. А поскольку принимает она в качестве параметра либо Integer, либо String, то я добавил класс WholeNumber (целое число), для того, чтобы можно было сконвертировать значение на стеке - из Short в Integer или из Long в Integer, и т.д.



Комментариев нет: