In technical documentation (I am mainly referring to the documentation for the source code of a computer program), this pattern seems quite common:

function MakeNFrobbers(int n):    
    Construct a list of 10 Frobbers.

However, someone recently claimed that this was not proper English and changed "Construct a list..." to "Creates a list...". The reasoning they gave was as follows:

  • "This guy construct" -> no predicate
  • "This guy creates" -> better

With "this guy" being unwritten in the typical clipped style of technical documentation.

To be clear, I'm not suggesting that the former is correct while the latter is not; both sound correct to my ear. However, I can't explain why using "construct" is grammatically correct in this context. The only counterpoint I could offer was:

  • "This guy allows you to construct" -> also correct

Is the former version using the bare infinitive ungrammatical and the second option the correct way, or are both correct? If both are correct, what is the rule that covers this particular case in regards to using a bare infinitive?

  • 1
    As each example (without the implied subject) is a fragment, concern about grammatical correctness seems tedious - provided the same convention is used throughout. The above function will Construct/Create vs The above function Constructs/Creates - surely, an argument can be made for either, but the time is probably better spent elsewhere. :) – Davo May 17 '17 at 19:18
  • 1
    Well, some fragments are more equal than others. – Meta May 17 '17 at 19:24
  • If that is the case, the function is misnamed also and should be MakesNFrobbers. Ha! – Kaz May 17 '17 at 19:36
  • Or MakeFrobberList() – Jim May 17 '17 at 19:44
  • Besides what @Kaz answered, which is correct and relevant, this is essentially a style question. Be consistent with whichever style you choose. If you don't have a style guide to follow, choose whichever style you like, as long as the meaning is clear. The choice posed here is not about grammar - both construct and creates are grammatical as used here. – Drew May 17 '17 at 19:59

I'd take the bare infinitive form as short for:

  What function MakeNFrobbers(int n) does is construct a list of 10 Frobbers.

This is a pseudo-cleft sentence, and it does take a bare infinitive after the "is".

| improve this answer | |
  • Are cleft sentences considered to be ungrammatical or bad form in formal English? I can't seem to find a definitive answer. – Meta May 17 '17 at 20:36
  • No. As a linguist, I don't really deal with "bad form", but I don't really see what's wrong with such sentences. Analyses are proposed for both cleft and pseudo-clleft sentences in McCawley's The Syntactic Phenomena of English. – Greg Lee May 17 '17 at 21:14
  • @Meta They are not considered to be in formal English. – Kaz May 18 '17 at 16:52
  • @Kaz I guess "formal" as in formal technical documentation. – Meta May 18 '17 at 17:22

It is not a bare infinitive, but rather an imperative. It's paraphrasing what the computer is being told to do.

It is no less grammatical than a sentence like "Combine all ingredients in a bowl" in a cooking recipe.

| improve this answer | |
  • 1
    It's not an imperative, because imperatives can take an optional "please". However, you wouldn't add that to "construct a list" in the example. – Greg Lee May 17 '17 at 20:08
  • @GregLee It takes please. "Please construct a list of ten integers." "Please combine the ingredients in a bowl." It's just comical/superfluous in that context. – Kaz May 18 '17 at 16:51
  • Basically it's ambiguous to me. We can read a recipe as a bunch of imperatives. Or we can read it as a collection of cleft sentences which can be preceded by elided clauses such as "What you do next is:". – Kaz May 18 '17 at 16:54

Your Answer

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

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