Какова теория, лежащая в основе изменяемых и неизменяемых типов?

Одна из вещей, которые мне нравятся в Python, - это различие между изменяемыми и неизменяемыми типами. Потратив некоторое время на программирование на c, прежде чем перейти на Python, я был поражен тем, насколько легко Python избавляется от всех сложностей разыменования указателей, которые сводят меня с ума на c. В Python все работает так, как я ожидал, и я быстро понял, что различие изменяемого / неизменяемого играет в этом важную роль.

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

Но откуда это? Я должен предположить, что GvR был не первым, кто осознал это различие, и что Python не был первым языком, который его использовал. Мне интересно услышать о более ранних языках, в которых использовалась эта концепция, а также о любых ранних теоретических обсуждениях ее.

18
задан jsau 2 July 2011 в 01:52
поделиться