1
$\begingroup$

Is there a term for languages, imperative, declarative, procedural, functional alike; a term describing the quality of functions being represented as a (reversible) relationship between inputs and outputs? Or alternatively, where inputs and outputs are done away with in favor of just *puts, where any given *put can be used as either an input or an output at call site?

I feel that the term "non-logical", while also slightly misleading linguistically, doesn't really convey the idea explained in the previous paragraph quite well — it's not the quality of not being logical, nor the quality of being functional, imperative or whatnot, but the quality of how functions are represented and how the notions of input and output are unified, and the consequences of such guts-wide-open representations

$\endgroup$
  • 1
    $\begingroup$ 1. Why do you think there would be a single word for this? What's wrong with "languages that aren't of the logic programming paradigm"? The great thing about language is that we can combine multiple words to form sophisticated concepts. 2. I don't understand your first two sentences. What do you mean by a "reversible relationship"? If by reversible you mean bijective, it's not true that programs in any of those paradigms provide a bijective function from inputs to outputs. Also, I'm not sure what it would mean to ~"replace inputs and outputs with just *puts"~. Do you mean "pointers"? $\endgroup$ – D.W. Nov 5 '15 at 18:31
  • $\begingroup$ As to point 1, yes, but I was wondering if computer science already has a term for it — no? then that answers it. Point 2: no I don't mean bijective and I don't mean pointers; a non-bijective function can also have an inverse, multivalued function, and that's exactly what an FLP language inverse operation would generally give you; for example, consider the inverse described in jeltsch.wordpress.com/2013/04/27/a-taste-of-curry. in Prolog, "inversing" is implicit, in that all args to a function can be either input or output $\endgroup$ – Erik Allik Nov 6 '15 at 9:34
  • 1
    $\begingroup$ circuits! (can you give more of an example?) ... also possibly dataflow... and also note QM computing is all about reversible operations... $\endgroup$ – vzn Nov 6 '15 at 18:22
  • $\begingroup$ @vzn: excellent points, Quantim is indeed like that. have "circuits" or "dataflow" been used in this sense somewhere? $\endgroup$ – Erik Allik Nov 6 '15 at 21:54
  • $\begingroup$ Given your last paragraph, it sounds like you are describing a property of declarative or logic-programming programming style. $\endgroup$ – D.W. Nov 7 '15 at 10:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.