Thou Impertinent Urchin-Faced Miscreant!

November 25, 2014

In 1968, Newsweek published an article “How to Win at Wordsmanship” by Philip Broughton. You pick a random number from 000 to 999, then look up a three word phrase in a table coded by the three digits of the random number:

Column 1 Column 2 Column 3
0. integrated 0. management 0. options
1. total 1. organizational 1. flexibility
2. systematized 2. monitored 2. capability
3. parallel 3. reciprocal 3. mobility
4. functional 4. digital 4. programming
5. responsive 5. logistical 5. concept
6. optional 6. transitional 6. time-phase
7. synchronized 7. incremental 7. projection
8. compatible 8. third-generation 8. hardware
9. balanced 9. policy 9. contingency

For instance, the random number 031 leads to the phrase “integrated reciprocal flexibility,” which you can use in a technical conversation or report. Broughton said “No one will have the remotest idea of what you are talking about, but the important thing is that they’re not about to admit it.”

Since then, many buzz-phrase generators have been developed, including corporate-speak “holistically embrace customer-directed imperatives” and the Shakespearean insult generator that gave us the title of our exercise. We have a couple of word lists on the next page, or you can Google for “buzz-phrase generator” to find lots of them on the web, but it’s most fun to build your own.

Your task is to write a program that generates random buzz-phrases. When you are finished, you are welcome to read or run a suggested solution, or to post your own solution or discuss the exercise in the comments below.

Advertisement

Pages: 1 2 3

3 Responses to “Thou Impertinent Urchin-Faced Miscreant!”

  1. The real code is in the map line at the end – the rest is just loading in the definitions from the file using YAML, and then checking we have a valid key!

    use strict;
    use YAML::Loader;
    
    my ($t,$k);
    { local $/ = undef; $t = YAML::Loader->new->load(<DATA>); }
    $k = 'shakespeare' unless exists $t->{$k = shift};
    
    print "@{[ map { $_->[rand @{$_}] } @{$t->{$k}} ]}\n";
    
    __END__
    broughton:
      -
        - integrated
        - total
        - systematized
        - parallel
        - functional
        - responsive
        - optional
        - synchronized
        - compatible
        - balanced
    
    
  2. Francesco said

    Haskell:

    import System.Random
    import Control.Applicative
    
    bs = [["integrated", "total", "systematized", "parallel", "functional",
           "responsive", "optional", "synchronized", "compatible", "balanced"],
           ["management","organizational","monitored","reciprocal","digital",
            "logistical","transitional","incremental","third-generation","policy"],
           ["options", "flexibility", "capability", "mobility", "programming",
            "concept", "time-phase", "projection", "hardware", "contingency"]]
    
    main = f <$> sequence (replicate 3 (randomRIO (0,9))) <*> pure bs
        where f ns ws = (!!) <$> ZipList ws <*> ZipList ns
    
  3. Josef Svenningsson said

    Only the code, put in whatever list of insults you fancy.

    import System.Random
    
    generate :: RandomGen g => g -> [[a]] -> [a]
    generate _ [] = []
    generate g (ls:lss) = ls !! ix : generate g' lss
      where (ix,g') = randomR (0,length ls-1) g
    

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: