There is something called "linear logic". In linear logic, assumptions can neither be duplicated nor dropped. Under the Curry-Howard correspondence, it corresponds to linear type theory, where values cannot be duplicated and dropped (it is the same type model that underlies Rust).

If you have linear update procedure, you are not allowed to use the argument of the update procedure anymore. In other words, the resource hasn't been duplicated but the procedure is linear in the resources. The same goes for the C++ move semantics.

As we are allowed to drop the result in Scheme (it is no error and Scheme has a garbage collector), it could be more precise to speak of "affine logic" and "affine type theory". But as it makes no sense to drop the result, the adjective "linear" is pretty well chosen.

Marc

Am So., 1. März 2020 um 20:04 Uhr schrieb Jens Axel Søgaard <xxxxxx@soegaard.net>:
Maybe it's "linear" in the srfi 1 sense?

https://srfi.schemers.org/srfi-1/srfi-1.html#LinearUpdateProcedures

Den søn. 1. mar. 2020 kl. 20.02 skrev Lassi Kortela <xxxxxx@lassi.io>:
Possibly a really dumb question, but what does "linear" refer to in the
SRFI's name?


--
--
Jens Axel Søgaard



--
Prof. Dr. Marc Nieper-Wißkirchen
 
Universität Augsburg
Institut für Mathematik
Universitätsstraße 14
86159 Augsburg
 
Tel: 0821/598-2146
Fax: 0821/598-2090
 
E-Mail: xxxxxx@math.uni-augsburg.de
Web: www.math.uni-augsburg.de/alg/mitarbeiter/mnieper/