The process of running a program (or evaluating a λ-term) can either yield a result / value, get stuck (waiting for input), yield an error, or go on forever. Those that yield a result / value are called ??? / valuable.

While this does not correspond to the usual meanings of the word valuable, the fact that the word already exists and that the -able suffix is often used to mean "capable of", using valuable to mean "capable of becoming a value" feels quite natural.

Unfortunately, in my context, the term value is already used for something else and I therefore need another word to express the same thing. I have been using result but resultable sounds really weird.

I am therefore searching for two words A and B such that:

  • an A is some sort of result (not including things that are stuck, but possibly including errors)
  • A and B are clearly related
  • B can be understood as "is capable of becoming an A" / "can become an A" / "can be evaluated to an A"

(A could also be an adjective, in which case "an A" should be replaced by "an A program" in the last item of the list)

  • resolvable or capable of resolution?
    – Lee Leon
    Commented Mar 14, 2018 at 17:41

3 Answers 3


When I teach this concept in the context of Turing Machines, I use the short phrases, "the function evaluates", or "the function loops". As far as I know, my students have not had problems understanding this shorthand, though I do define the terms for them the first time I use them.

  • 1
    If there is no standard term in computer science, as @Ben I. suggests, if you don't like his approach, it is open to you to define your own term, provided, like him, you explain the definition the first time you want to use it. A suggestion: "decisive" - if that does not have any over-riding technical meanings already.
    – JeremyC
    Commented Mar 14, 2018 at 17:45
  • The problem with evaluate is that it's related to value which is already used for something else.
    – xavierm02
    Commented Mar 14, 2018 at 18:10
  • 1
    @xavierm02 If there were some words that were a close fit, but didn't work, you should have mentioned this in the question.
    – Laurel
    Commented Mar 14, 2018 at 19:19

A procedure or effort that results in an answer can be said to be "productive" in that it produces a (desirable?) product after a finite operation.

The term was given as a comment after a coughing "fit." The patient, attempting to clear some breathing obstruction, continued in-turn to inhale, cough, and repeat. Finally, the patient was successful and stopped coughing. The attending nurse announced, "That was productive." Simple term. It worked to describe the situation.


  • Productive for B works really well, but product also already means something :/
    – xavierm02
    Commented Mar 14, 2018 at 19:01

If the focus is on the question of “terminates” vs. “never terminates”, as is usual when discussing Turing Machines and computability, terminating or non-terminating are the words I usually see. If the focus is on the fact that the (presumably terminating) process returns a value vs. only runs for its side effects, I generally see function (returns a value) vs. procedure (no value returned), or the phrase value-returning.

  • It focuses on the termination but should exclude stuck programs for which the evaluation could resume. I edited the question to make it clearer.
    – xavierm02
    Commented Mar 14, 2018 at 18:06
  • The edit doesn't really clarify the above; the use of terminating vs. non-terminating assumes that there are no external factors that may cause an indefinite delay in processing (that is, all terminating functions are guaranteed to terminate in finite time). You may want to edit the question to provide more contextual information, including specific examples. Commented Mar 14, 2018 at 18:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.