Word with most consonants

The English language is filled with curiosities. There are more words than you’d expect, and words with very particular combinations of letters.

This article will spotlight the words with the most consonants in a row. You’ll leave this article having learned a lot about some uncommon English words.

Words with most consonants in a row include “tsktsks”, “archronicler”, “catchphrase”, “eschscholtzia”, “knightsbridge” and “latchstring”. These are all terms that have a lot of consecutive consonants. If you want to train your spelling, these are great words to try out.

Words With Most Consonants in a Row

Here’s a list that compiles all of the terms that we’ll showcase in this article:

  1. Apple
  2. Archchronicler
  3. Backsplash
  4. Backstretch
  5. Backstroke
  6. Birthday
  7. Birthplace
  8. Breastroke
  9. Catchphrase
  10. Children
  11. Cycle
  12. Downstream
  13. Downthrust
  14. Dumbstruck
  15. Dumpster
  16. Egypt
  17. Eighths
  18. Energy
  19. Erstwhile
  20. Eschscholtzia
  21. Everything
  22. Girlfriend
  23. Hantzschia
  24. Happy
  25. Hundred
  26. Knightsbridge
  27. Latchstring
  28. Monster
  29. Month
  30. Mystery
  31. Postphthisic
  32. Sixths
  33. Strength
  34. Syllable
  35. System
  36. Tsktsks
  37. Twenty
  38. Weltschmerz
  39. World

Words With 8 Consonants in a Row

There are no words with 8 consonants in a row.

There used to be, as “cytlyngs” used to be a valid English word. It was a synonym for “kitlings”. However, that term hasn’t been used in several centuries. For this reason, we can’t actually count it.

Words With 7 Consonants in a Row

There is one English word that has 7 consonants in a row. Make no mistake, this is an incredibly rare term. You might go your whole life without discovering this word. The English word with 7 consonants in a row is “tsktsks”.

This word is an onomatopoeia, which explains why it’s such a rare term. People use it to talk about someone who is shushing someone else.

Words With 6 Consonants in a Row

There are a few English words that have 6 consonants in a row. Make no mistake, there aren’t a lot of these.

Some words with 6 consonants in a row are “archchronicler”, “catchphrase”, and “eschscholtzia”.

Here are some more words with 6 consonants in a row:

  • Archchronicler
  • Catchphrase
  • Eschscholtzia
  • Hantzschia
  • Knightsbridge
  • Latchstring
  • Postphthisic
  • Weltschmerz

Words With 5 Consonants in a Row

There are several words with 5 consonants in a row. Naturally, these are still somewhat rare terms. However, they can be found, and you might know some of these words already.

Some words with 5 consonants in a row are “backsplash”, “backstretch”, “backstroke”, and “birthplace”.

Here is a more complete list of words with 5 consonants in a row:

  • Backsplash
  • Backstretch
  • Backstroke
  • Birthplace
  • Breastroke
  • Downstream
  • Downthrust
  • Dumbstruck
  • Eighths
  • Erstwhile

Words With 4 Consonants in a Row

It’s not too hard to find terms with 4 consonants in a row. These words are fairly common, because putting four consonants in a row is not a complicated process.

Some words with 4 consonants in a row are “sixths”, “dumpster”, “girlfriend” and “Egypt”.

Here is a list that has some more words with 4 consonants in a row:

  • Sixths
  • Dumpster
  • Girlfriend
  • Egypt
  • Everything
  • System
  • Syllable
  • Strength
  • Cycle
  • Mystery

Words With 3 Consonants in a Row

There are a lot of words with three consonants in a row. There are words that end with 3 consonants in a row and words that start with 3 consonants in a row. Moreover, there are 5 letter words with 3 consonants in a row.

Some examples are “world”, “apple”, and “monster”.

Here are some more words with 3 consonants in a row:

  • World
  • Apple
  • Monster
  • Happy
  • Children
  • Birthday
  • Energy
  • Twenty
  • Month
  • Hundred

martin lassen dam grammarhow

Martin holds a Master’s degree in Finance and International Business. He has six years of experience in professional communication with clients, executives, and colleagues. Furthermore, he has teaching experience from Aarhus University. Martin has been featured as an expert in communication and teaching on Forbes and Shopify. Read more about Martin here.

Which word has the most consecutive consonants?

The most consecutive consonants in a word is six. This occurs in a number of words, the most familiar being catchphrase, sightscreen, and watchstrap.

Is there a word with 4 consonants in a row?

To the best of my knowledge, there are no English words which are actually pronounced with four or more vowels in a row. The 5th consonant of the Hindi alphabet is used in words with the nasal sound (n/m) with other letters along with other letter of the series — ka, kha, ga and gha.

Which name has more consonant?

3 Answers. Archchronicler, catchphrase, eschscholtzia, latchstring, lengthsman, and postphthisic each have six consonants in a row. HIRSCHSPRUNG’S (DISEASE) has seven consecutive consonants, as does SCHTSCHUROWSKIA. The shortest such word is TSKTSKS.

Which language has the most consonants?

The language ! Xóõ (also known as Ta’a; formerly called “southern Khoisan”) is spoken by a small community of around 3,000 semi-nomadic people in southern Botswana and eastern Namibia. It has a total of 130 consonants (plus 28 vowels and three tones to give a total segment inventory of 161).

What is the hardest language to learn?

The Hardest Languages To Learn For English Speakers

  1. Mandarin Chinese. Interestingly, the hardest language to learn is also the most widely spoken native language in the world.
  2. Arabic.
  3. Polish.
  4. Russian.
  5. Turkish.
  6. Danish.

Which language is the easiest to learn?

And The Easiest Language To Learn Is…

  1. Norwegian. This may come as a surprise, but we have ranked Norwegian as the easiest language to learn for English speakers.
  2. Swedish.
  3. Spanish.
  4. Dutch.
  5. Portuguese.
  6. Indonesian.
  7. Italian.
  8. French.

Which language has the hardest grammar?

Turkish. Originally Answered: Which language has the hardest grammar to learn? A language that’s spoken in the Basque Country of Spain and France. This language is not even related to Spanish or French, it’s not even related to ANY Indo-European language.

What language is closest to English?

Dutch

Which Romance language has the easiest grammar?

  • Spanish (easy grammar and easy speaking)
  • French (easy grammar but moderate speaking)
  • Italian (moderate grammar but easy speaking)
  • Portuguese (moderate speaking but difficult grammar)
  • Romanian (difficult speaking and difficult grammar)

What is the hardest Germanic language?

German

What is the hardest Romance language?

Romanian

What is the hardest Latin language?

Romanian = Hardest Latin language

  • Plurals. Spanish – adding “s” Romanian – adding “i”, “e” or “uri” pretty randomly.
  • Genders. Spanish – 2 genders: o=masculine and a=feminine.
  • Conjugation. Spanish – 3 verb conjugations and very regular.
  • Grammatical cases. Spanish – no cases.
  • Spelling.

What is the hardest word to say?

The Most Difficult English Word To Pronounce

  • Rural.
  • Otorhinolaryngologist.
  • Colonel.
  • Penguin.
  • Sixth.
  • Isthmus.
  • Anemone.
  • Squirrel.

What order should I learn Romance languages?

Between Spanish and Romanian, order the others (French, Italian, Portuguese, Catalan and Occitan) based on your strengths, weaknesses and interests. Note that many people choose to learn Spanish, Italian and French first with Portuguese close behind. Some people plan on learning Romance languages simultaneously.

What’s the hardest thing in the world?

Although diamonds commonly known as the hardest material in the world, there are actually six materials that are harder. Diamonds are still one of the hardest naturally occurring and abundant materials on Earth, but these six materials all have it beat.

What is the world’s hardest rock?

Diamond is the hardest known mineral, Mohs’ 10.

What is the hardest thing a human can do?

What is hardest thing we do with our brains in a lifetime?

  • Speaking a foreign language.
  • Learning to speak in the first place.
  • Learning to write.
  • Learning to walk/ride a bike.
  • Dealing with death of a loved one, divorce, lose job, other such life challenges.
  • Fighting in a war (fortunately most of us don’t have to do this)

What is the strongest thing in the world?

Topping the list, graphene is the strongest materials known to humans. The transparent material is composed of a single layer carbon atom arranged in a triangular lattice and it’s the basic structural element in charcoal, graphite and carbon nanotubes.

What is difficult in life?

We simply cannot do without friends because we aren’t made to survive alone. We seek and keep friends to help us grow. So a changing friendship can be a difficult thing to deal with. Letting go of friends and adapting to new faces as you leave behind what you had come to love can be challenging.

What is the toughest moment in your life?

The five most challenging moments in life can include failures, losing a job, getting older, getting sick or injured, and the death of a loved one. Hiring managers often ask job seekers about their “toughest challenges” and how they handled them, but no one should feel obligated to share too many personal details.

How can I be happy in hard times?

10 reader tips to stay happy in tough times

  1. Remain optimistic. Tough times call for stamina and endurance.
  2. See the big picture.
  3. Unwind with cheap or free entertainment.
  4. Cook — and even grow — your own food.
  5. Go into ‘survival mode’ if necessary.
  6. Give to others in need.
  7. Remain focused on what really matters.

What can you not control in your life?

You cannot control their actions, reactions, thoughts, feelings, beliefs, etc. And to put this into perspective, you are also not RESPONSIBLE for other people’s actions, reactions, thoughts, feelings, beliefs, etc (excluding your non-adult children). We don’t usually try to control people on purpose.

How do you feel in control of yourself?

Here is what we recommend.

  1. Control stimuli. Agency begins with what you let into your mind—meaning what comes in from your environment.
  2. Associate selectively.
  3. Move.
  4. Position yourself as a learner.
  5. Manage your emotions and beliefs.
  6. Check your intuition.
  7. Deliberate, then act.

How do you control everyone?

Use these seven strategies wisely.

  1. Do all the thinking for them.
  2. Start an avalanche.
  3. Ask for an inch, take a mile.
  4. Always have a real deadline.
  5. Give ten times more than you take.
  6. Stand for something greater than yourself.
  7. Be completely and utterly shameless.

How do I get my life in order?

Here are 10 practical tips on how you can get your life in order – starting today!

  1. REALIZE that your life is not where you want it to be right now.
  2. TAKE RESPONSIBILITY for the condition that your life is in right now.
  3. REPENT.
  4. REMEMBER what is MOST IMPORTANT to you.
  5. GET QUIET and determine your TOP 3-5 priorities.

What to do to get a life?

Five Ways To Get A Life

  1. Shorten your workday by 30 minutes. I promise you’ll get more done than if you put in your usual nine to ten hours.
  2. Avoid multitasking.
  3. Break the habit of total self-reliance.
  4. Capture all your to-dos in one place.
  5. Schedule one purely joyful activity each week.

How can I get my life together in a week?

The Six-Step Week Plan That’ll Help You Get Your Life Together

  1. Change your perceptions of time.
  2. Prioritize.
  3. Sort out your long term goals.
  4. Organize with a pretty calendar.
  5. Cut the things that aren’t important.
  6. Make sure there’s ‘nothing’ time.

How do I get back on top?

Here are some quick but powerful ways to get unstuck and back on top of life.

  1. Find The Source.
  2. Deliberately Leave Your Comfort Zone.
  3. Change Your Surroundings.
  4. Work On Accepting All Emotions.
  5. Get Physical.
  6. Give Yourself Permission To Dream.
  7. Identify Patterns.

How do I finally get my life together?

10 Incredible Ideas To Get Your Life Together In 2020

  1. Review your strengths and weaknesses.
  2. Make a plan for change.
  3. Learn from someone else.
  4. Don’t spend too long thinking.
  5. Don’t change the actions, change the system.
  6. Track your progress.
  7. Change the way you talk about yourself.
  8. Give yourself the tools you need.

How can I get my life together fast?

30 Ways To Get Your Life Together Once And For All

  1. Do talk, but stop complaining excessively.
  2. Live your life proactively instead of reactively.
  3. Get organized.
  4. Set short, mid, and long-term goals.
  5. Cut toxic people out of your life.
  6. Take better care of your physical health.

All Words: Gypsy, nymph, psych, lynch, crypt, myrrh, wryly, lymph, glyph, tryst, Pygmy, sylph, Gwynn, shyly, FHLMC, dryly, PDFLP, stymy, slyly, and shdsl

Table of Contents Show

  • Completed AZ word finder features completed
  • In Progress Finder features I’m working on.
  • What 5 letter word has the least vowels?
  • What 5 letter word has lots of consonants?
  • What are the best first 5 words in Wordle?
  • What word has the most consonants?

You are searching for all words that do not have vowels. Since a vowel is a,e,i,o,u and sometimes y, you might want to search for words with no vowels that do not have the letter y! But, You Go Words provides abbreviations for the most common word/phrases which makes it difficult to find words with no vowels and no y. What to do, is view the words with no vowels (no aeiou) and determine which words would not classify the letter y as a vowel.

Word Length Consonants Vowels Syllables Origin Favourite
Gypsy 5 5 0 2 Middle English
Nymph 5 5 0 1 Middle English
Psych 5 5 0 1
Lynch 5 5 0 1
Crypt 5 5 0 1 Latin
Myrrh 5 5 0 1 Old English
Wryly 5 5 0 2
Lymph 5 5 0 1 Latin
Glyph 5 5 0 1 French
Tryst 5 5 0 1 Middle English
Pygmy 5 5 0 2
Sylph 5 5 0 1 New Latin
Gwynn 5 5 0 1
Shyly 5 5 0 2
FHLMC 5 5 0 1
Dryly 5 5 0 2
PDFLP 5 5 0 1
Stymy 5 5 0 2
Slyly 5 5 0 2
Shdsl 5 5 0 1

The largest free 5 letters words list online. Does not include all of the plural forms of five letter words.



Completed AZ word finder features completed

  • Word Unscambler has been renamed and will be altered to a complete Anagram Solver
  • Syllable counter is now available for text and documents.
  • In The Middle / In The Center word finding. Searching «two syllable words with qu in the middle», «ab in the center»,etc. will bring you to a list of words spelled with _a-z_. For «exactly center» use a search like «6 letters with qu in the middle»
  • Word unscrambling. For fastest speed possible,
    you will now land on the top viewed set of characters for that set of letters.
  • New search abilities «words with all vowels» or «words with no vowels», «ends in a vowel», or «start with a vowel».
  • 5 letter word with most consonants and least vowels

    Puzzle solving using underscores or dashes such as «solve _ _ e _ _ _ _ _ _, singular nouns 4 vowels and 3 syllables»

  • Find words or names by their second, third and fourth letter up to the eighth letter
    with eazy search like «words with the second letter b».
  • Puzzle solver & missing letters. Wordbrain Themes, Words With Friends, Scrabble, 4Pics1Word, Word Cookies cheats, answers, and more. Example answers search: «solve the puzzle b_r», complete this 6 letter word from o-e-h, «spelled like out», «words containing out». Use an underscore or dash where the puzzle is
    missing a letter.
  • Length queries including 6 letter words now include quick navigation for speech type and starts/ends letters such as 6 letter words with the second letter c.
  • Rhymes and sounds like tool for any word, spelling, or text entered. Different
    results appear for sounds and rhymes.
  • Palindromes word Lists now available by searching palindrome words.
  • Unscrambler & Decoder — decode phrases such as «dining table» for «egbindinatl».
  • Negative search filters
    words that do not have the letter e
  • Quick word find. Single word searches bring you to the word page. Solving word puzzles using an underscore or dash ( Example: _a_t_i_a ). All words/letters without a dedicated page will be unscrambled.
  • Find scrabble words by points! Add «scrabble» in your query, such as Scrabble words with 14 points.
  • Favorite words to your account

View All English Words


Any Word finder ideas you want? Send a word find feature request to let me know.

Are you interested in learning Japanese while improving your English with You Go Words!? You can learn Japanese
online and free with Misa of Japanese Ammo including grammer and vocabulary.

In Progress Finder features I’m working on.

  • Phonograms searching
    coming soon due to many users searching such as «words ending with a multiple phonogram»
  • Root word search. Show with prefix and suffix options, only if it has a root word.
  • Alternative spelling of words from American English to British English. Mouse over example: Color
  • Printable & downloadable word lists.
  • Frequency of a words appearance in books, and other texts.
  • Allow word find such as «words which contain the consonants N, T, and R». This would provide a list of words with letters in a specific order, such as the consonants in the order of ntr.
  • Plural and singular words with information and example sentences.
  • Word games by school grade from Kindergarten to grade 12.
  • Provide words that can be used twice or more in one sentence with example sentences.
  • Paraphrasing, pronunciation, and free grammar tools.
  • Seperate
    words by area of focus. ( Technology, Education, Science, Psychology, etc. )

Did You Find Your Words?

If you could not find the words you were looking for, please submit feedback or leave a comment below. Let me know what word list you could not find, and I’ll be sure to get it fixed up for you.

What 5 letter word has the least vowels?

List of 5-Letter Words With No Vowels.

Byrls..

Chynd..

Crwth..

Crypt..

Cwtch..

Cysts..

Dryly..

Flyby..

What 5 letter word has lots of consonants?

5 Letter Words.

xylyl..

pygmy..

cwtch..

flyby..

hyphy..

lymph..

nymph..

glyph..

What are the best first 5 words in Wordle?

So based on most used letters from top here are the best 5 letter starting words to use when you start your Wordle daily:.

TORSE..

TORSI..

TRAIL..

TRIAL..

TRIES..

TRIOL..

TRIOS..

TROIS..

What word has the most consonants?

The most consecutive consonants in a word is six. This occurs in a number of words, the most familiar being catchphrase, sightscreen, and watchstrap. The word euouae (a mnemonic used in medieval music) is the only word to contain six consecutive vowels, and unsurprisingly is the longest word with no consonants in it.

Notes and Queries

Categories

Nooks and crannies

Yesteryear

Semantic enigmas

The body beautiful

Red tape, white lies

Speculative science

This sceptred isle

Root of all evil

Ethical conundrums

This sporting life

Stage and screen

Birds and the bees

SEMANTIC ENIGMAS

Which English word has the most consecutive consonants? I cannot beat six — ‘catchphrase’ or ‘watchstrap’ being less elegant than ‘Knightsbridge’ in that category?

  • THERE ARE at least two words with seven consecutive consonants: ‘rhythms’ and ‘strychnine’.

    Miranda Blayney, Richmond, Surrey.

  • UNSYNCHRONISED.

    B. N. Tattersall, Prestbury, Lancs.

  • IF ‘CONSONANT’ is used in the spelling sense of ‘letter of the alphabet representing (part of) a consonant sound’, the questioner has probably reached the limit. In English STR-, PHR-, -TCH and -GHT are frequent sequences at the beginnings and ends of simple words. You can get six consonants in this sense when two such sequences meet in a compound word, as in the examples quoted. This rarely gives as many actual consonant sounds: ‘watchstrap’, for example, has only four (-tstr-), according to one common way of counting the sounds of English.

    Peter Sherwood, School of Slavonic and East European Studies, University of London.

  • THERE ARE several words which contain more than six consecutive consonants, although most of them depend on the use of the letters ‘y’ or ‘w’ as surrogate vowels, and many are either obsolete words or obsolete spellings of modern words. Those with seven consecutive consonants include cyttyns (sits), schylds (children), schynds (Orcadian inquests), schyrche (church), schyyds (shides), and thryssce (thrush); all of these are in the OED. For eight consecutive consonants there is the obsolete word cytlyngs (kitlings) (in OED). There are nine consecutive consonants in aspartyltryptophan, the dipeptide formed from the amino acids aspartic acid and tryptophan, and Gardner gives wppwrmwste (an obsolete spelling of uppermost). But perhaps the record, with 12 consecutive consonants, goes to the Welsh village Mynydd-y-Slwyn.

    D. G. Tallis, Oxford.

  • PSYCHOLOGICAL rapid heart rates are occasionally referred to as tachydysrhythmia.

    Dr Peter C. Barnes, Hope Hospital, Salford.

  • THE EXAMPLES given by your correspondents are all incorrect. The letter ‘y’ can be either a consonant or a vowel as the context requires. In each of the instances given, it is used as a vowel.

    J. G. Stanford, Southwick, Brighton.

  • SORRY, D.G. Tallis. In the Welsh alphabet Y (pronounced «uh» or «ee» according to the context), and W (pronounced «oo»), are both vowels. In any case, as dd (pronounced as a hard «th» sound) is actually one letter in Welsh, the combined name has only eleven letters. Didn’t the questioner restrict the query to English words?

    Richard Harrold Suratthani, Thailand (mathus@samart.co.th)

  • English students of the German language normally have
    an outbreak of «cold sweat»
    when they try to pronounce
    the German equivalent word :
    » Angstschweiss » — eight consecutive consonants .

    Uwe Junge, Niebuell, Germany

  • Congenital aganglionosis of the gut goes by the name of Hirschsprung’s disease which has seven consecutive consonants (without y or w).

    Neil Bodsworth, Sydney Australia

  • In Slovak you can produce an entire sentence with only consonants: «Strc prst skrz krk», meaning «Stick your finger through your neck».

    Actually it is not really a vowel-less sentence; the «r» in each of the words is effectively a vowel. But it looks cool.

    Geoff, London UK

Add your answer

UP

Find words which contain the most consonants is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

Task

Use the dictionary  unixdict.txt

Find the words which contains most consonants,   but each consonant should appear only once in a word.

The length of any word shown should have a length   >  10.

Other tasks related to string operations:

11l[edit]

Translation of: Python

V lines = File(‘unixdict.txt’).read().split("n")

V words = lines.filter(w -> w.len > 10 & !re:‘[^a-z]’.search(w))

DefaultDict[Int, [String]] good
L(word) words
   V c = word.replace(re:‘[aeiou]’, ‘’)
   I sorted(Array(c)) == sorted(Array(Set(Array(c))))
      good[c.len].append(word)

L(k, v) sorted(good.items(), reverse' 1B)
   I v.len > 30
      print(k‘: ’v.len‘ words’)
   E
      print(k‘: ’sorted(v).join(‘ ’))
9: comprehensible
8: 39 words
7: 130 words
6: 152 words
5: acquisition acquisitive acrimonious ceremonious deleterious diatomaceous egalitarian equilibrate equilibrium equinoctial expeditious hereinabove homogeneous inequitable injudicious inoperative inquisitive interviewee leeuwenhoek onomatopoeic radioactive requisition
4: audiovisual bourgeoisie onomatopoeia

Action![edit]

In the following solution the input file unixdict.txt is loaded from H6 drive. Altirra emulator automatically converts CR/LF character from ASCII into 155 character in ATASCII charset used by Atari 8-bit computer when one from H6-H10 hard drive under DOS 2.5 is used.

CHAR ARRAY line(256)

BYTE FUNC ConsonantsCount(CHAR ARRAY word)
  BYTE len,i,c,count
  BYTE ARRAY chars(128)

  len=word(0)
  IF len<=10 THEN RETURN (0) FI

  SetBlock(chars,128,0)
  count=0
  FOR i=1 TO len
  DO
    c=word(i)
    IF c#'a AND c#'e AND c#'i AND c#'o AND c#'u THEN
      IF chars(c) THEN RETURN (0) FI
      chars(c)=1
      count==+1
    FI
  OD
RETURN (count)

BYTE FUNC FindMostConsonants(CHAR ARRAY fname)
  BYTE max,count,dev=[1]

  max=0
  Close(dev)
  Open(dev,fname,4)
  WHILE Eof(dev)=0
  DO
    InputSD(dev,line)
    count=ConsonantsCount(line)
    IF max<count THEN
      max=count
    FI
  OD
  Close(dev)
RETURN (max)

PROC FindWords(CHAR ARRAY fname BYTE n)
  BYTE count,dev=[1]

  Close(dev)
  Open(dev,fname,4)
  WHILE Eof(dev)=0
  DO
    InputSD(dev,line)
    count=ConsonantsCount(line)
    IF count=n THEN
      Print(line) Put(32)
    FI
  OD
  Close(dev)
  PutE() PutE()
RETURN

PROC Main()
  CHAR ARRAY fname="H6:UNIXDICT.TXT"
  BYTE i,max

  PrintE("Finding the most consonants...")
  PutE()
  max=FindMostConsonants(fname)

  i=max
  WHILE i>=max-1
  DO
    PrintF("%B consonants:%E",i)
    FindWords(fname,i)
    i==-1
  OD
RETURN

Screenshot from Atari 8-bit computer

Finding the most consonants...

9 consonants:
comprehensible

8 consonants:
administrable anthropology blameworthy bluestocking boustrophedon bricklaying chemisorption christendom
claustrophobia compensatory comprehensive counterexample demonstrable disciplinary discriminable geochemistry
hypertensive indecipherable indecomposable indiscoverable lexicography manslaughter misanthropic mockingbird
monkeyflower neuropathology paralinguistic pharmacology pitchblende playwriting shipbuilding shortcoming
springfield stenography stockholder switchblade switchboard switzerland thunderclap

Ada[edit]

with Ada.Text_Io;
with Ada.Strings.Fixed;
with Ada.Containers.Indefinite_Vectors;

procedure Most_Consonants is
   use Ada.Text_Io;

   package String_Vectors is
     new Ada.Containers.Indefinite_Vectors (Index_Type   => Positive,
                                            Element_Type => String);

   function Is_Vowel (Letter : Character) return Boolean
   is (Ada.Strings.Fixed.Index ("aeiou", "" & Letter) /= 0);

   type Consonant_Count is range 0 .. 15;
   Filename : constant String := "unixdict.txt";
   File     : File_Type;
   Words    : array (Consonant_Count) of String_Vectors.Vector;
begin
   Open (File, In_File, Filename);
   while not End_Of_File (File) loop
      declare
         Word  : constant String  := Get_Line (File);
         Found : array (Character) of Boolean := (others => False);
         Conso : Consonant_Count := 0;
         Bad   : Boolean         := False;
      begin
         for Letter of Word loop
            if Is_Vowel (Letter) then
               null;
            elsif Found (Letter) then
               Bad := True;
            else
               Found (Letter) := True;
               Conso := Conso + 1;
            end if;
         end loop;
         if not Bad and Word'Length > 10 then
            Words (Conso).Append (Word);
         end if;
      end;
   end loop;
   Close (File);


   for Cons in Words'Range loop
      if not Words (Cons).Is_Empty then
         Put (Cons'Image & " consonants: ");
         Put (Words (Cons).Length'Image & " words");
         New_Line;
      end if;
      declare
         Column : Natural := 0;
         Image  : String (1 .. 15);
      begin
         for Word of Words (Cons) loop
            Ada.Strings.Fixed.Move (Word, Image);
            Put (Image);
            Column := Column + 1;
            if Column mod 8 = 0 then
               New_Line;
            end if;
         end loop;
      end;
      if not Words (Cons).Is_Empty then
         New_Line;
      end if;
   end loop;

end Most_Consonants;
 4 consonants:  3 words
audiovisual    bourgeoisie    onomatopoeia
 5 consonants:  22 words
acquisition    acquisitive    acrimonious    ceremonious    deleterious    diatomaceous   egalitarian    equilibrate
equilibrium    equinoctial    expeditious    hereinabove    homogeneous    inequitable    injudicious    inoperative
inquisitive    interviewee    leeuwenhoek    onomatopoeic   radioactive    requisition
 6 consonants:  152 words
aboveground    advantageous   adventurous    aerodynamic    anglophobia    anisotropic    archipelago    automorphic
baltimorean    beneficiary    borosilicate   cabinetmake    californium    codetermine    coextensive    comparative
compilation    composition    confabulate    confederate    considerate    consolidate    counterpoise   countervail
decisionmake   declamation    declaration    declarative    deemphasize    deformation    deliverance    demountable
denumerable    deoxyribose    depreciable    deprivation    destabilize    diagnosable    diamagnetic    dichotomize
dichotomous    disambiguate   eigenvector    elizabethan    encapsulate    enforceable    ephemerides    epidemiology
evolutionary   exceptional    exclamation    exercisable    exhaustible    exoskeleton    expenditure    experiential
exploration    fluorescein    geometrician   hemosiderin    hereinbelow    hermeneutic    heterogamous   heterogeneous
heterosexual   hexadecimal    hexafluoride   homebuilder    homogeneity    housebroken    icosahedral    icosahedron
impersonate    imprecision    improvisate    inadvisable    increasable    incredulous    indivisible    indomitable
ineradicable   inescapable    inestimable    inexcusable    infelicitous   informatica    informative    inseparable
insuperable    ionospheric    justiciable    kaleidescope   kaleidoscope   legerdemain    liquefaction   loudspeaker
machinelike    magisterial    maladaptive    mantlepiece    manufacture    masterpiece    meetinghouse   meteorology
minesweeper    ministerial    multifarious   musculature    observation    patrimonial    peasanthood    pediatrician
persecution    pertinacious   picturesque    planetarium    pleistocene    pomegranate    predominate    prejudicial
prohibition    prohibitive    prolegomena    prosecution    provisional    provocation    publication    quasiperiodic
reclamation    religiosity    renegotiable   residential    rooseveltian   safekeeping    saloonkeeper   serviceable
speedometer    subrogation    sulfonamide    superficial    superlative    teaspoonful    trapezoidal    tridiagonal
troublesome    vainglorious   valediction    venturesome    vermiculite    vocabularian   warehouseman   wisenheimer
 7 consonants:  130 words
acknowledge    algorithmic    alphanumeric   ambidextrous   amphibology    anchoritism    atmospheric    autobiography
bakersfield    bartholomew    bidirectional  bloodstream    boardinghouse  cartilaginous  centrifugal    chamberlain
charlemagne    clairvoyant    combinatorial  compensable    complaisant    conflagrate    conglomerate   conquistador
consumptive    convertible    cosmopolitan   counterflow    countryside    countrywide    declamatory    decomposable
decomposition  deliquescent   description    descriptive    dilogarithm    discernible    discriminate   disturbance
documentary    earthmoving    encephalitis   endothermic    epistemology   everlasting    exchangeable   exclamatory
exclusionary   exculpatory    explanatory    extemporaneous extravaganza   filamentary    fluorescent    galvanometer
geophysical    glycerinate    groundskeep    herpetology    heterozygous   homebuilding   honeysuckle    hydrogenate
hyperboloid    impenetrable   imperceivable  imperishable   imponderable   impregnable    improvident    improvisation
incomparable   incompatible   incomputable   incredulity    indefatigable  indigestible   indisputable   inexhaustible
inextricable   inhospitable   inscrutable    jurisdiction   lawbreaking    leatherback    leatherneck    leavenworth
logarithmic    loudspeaking   maidservant    malnourished   marketplace    merchandise    methodology    misanthrope
mitochondria   molybdenite    nearsighted    obfuscatory    oceanography   palindromic    paradigmatic   paramagnetic
perfectible    phraseology    politicking    predicament    presidential   problematic    proclamation   promiscuity
providential   purchasable    pythagorean    quasiparticle  quicksilver    radiotelephone sedimentary    selfadjoint
serendipity    sovereignty    subjunctive    superfluity    terminology    valedictorian  valedictory    verisimilitude
vigilantism    voluntarism
 8 consonants:  39 words
administrable  anthropology   blameworthy    bluestocking   boustrophedon  bricklaying    chemisorption  christendom
claustrophobia compensatory   comprehensive  counterexample demonstrable   disciplinary   discriminable  geochemistry
hypertensive   indecipherable indecomposable indiscoverable lexicography   manslaughter   misanthropic   mockingbird
monkeyflower   neuropathology paralinguistic pharmacology   pitchblende    playwriting    shipbuilding   shortcoming
springfield    stenography    stockholder    switchblade    switchboard    switzerland    thunderclap
 9 consonants:  1 words
comprehensible

ALGOL 68[edit]

# find words longer than 10 characters and sort by the number of consonants  #
# they contain                                                               #
IF  FILE input file;
    STRING file name = "unixdict.txt";
    open( input file, file name, stand in channel ) /= 0
THEN
    # failed to open the file #
    print( ( "Unable to open """ + file name + """", newline ) )
ELSE
    # file opened OK #
    BOOL at eof := FALSE;
    # set the EOF handler for the file #
    on logical file end( input file
                       , ( REF FILE f )BOOL:
                         BEGIN # note that we reached EOF on the latest read #
                               # and return TRUE so processing can continue  #
                               at eof := TRUE
                         END
                       );

    # in-place quick sort an array of strings                                #
    PROC s quicksort = ( REF[]STRING a, INT lb, ub )VOID:
         IF ub > lb
         THEN
            # more than one element, so must sort                            #
            INT  left  := lb;
            INT  right := ub;
            # choosing the middle element of the array as the pivot          #
            STRING pivot := a[ left + ( ( right + 1 ) - left ) OVER 2 ];
            WHILE
                WHILE IF left  <= ub THEN a[ left  ] < pivot ELSE FALSE FI
                DO
                    left  +:= 1
                OD;
                WHILE IF right >= lb THEN a[ right ] > pivot ELSE FALSE FI
                DO
                    right -:= 1
                OD;
                left <= right
            DO
                STRING t   := a[ left  ];
                a[ left  ] := a[ right ];
                a[ right ] := t;
                left      +:= 1;
                right     -:= 1
            OD;
            s quicksort( a, lb,   right );
            s quicksort( a, left, ub    )
         FI # s quicksort # ;

    # returns the length of s                                                #
    OP LENGTH     = ( STRING s )INT: 1 + ( UPB s - LWB s );
    # returns the consonant count of s or 0 if the consonants are not unique #
    OP UNIQUECONSONANTS = ( STRING s )INT:
       BEGIN
        [ 0 : 26 ]INT count;
        FOR c FROM LWB count TO UPB count DO count[ c ] := 0 OD;
        FOR i FROM LWB s TO UPB s DO
            CHAR c := s[ i ];
            IF c >= "A" AND c <= "Z" THEN
                c := REPR ( ABS c + ( ABS "a" - ABS "A" ) )
            FI;
            IF c >= "b" AND c <= "z" THEN
                IF c /= "e" AND c /= "i" AND c /= "o" AND c /= "u" THEN
                   count[ ABS c - ABS "a" ] +:= 1
                FI
            FI
        OD;
        BOOL all unique := TRUE;
        INT  consonants := 0;
        FOR c FROM LWB count TO UPB count WHILE all unique := count[ c ] < 2 DO
            consonants +:= count[ c ]
        OD;
        IF all unique THEN consonants ELSE 0 FI
       END # UNIQUECONSONANTS # ;
    [ 1 : 2 000 ]STRING words;
    INT w count    := 0;
    INT max length := 0;
    WHILE NOT at eof
    DO
        STRING word;
        get( input file, ( word, newline ) );
        IF NOT at eof THEN
            # have another word                                              #
            IF INT w length = LENGTH word;
               w length > 10
            THEN
                IF INT consonants = UNIQUECONSONANTS word;
                   consonants > 0
                THEN
                    # word is long enough to include and contains only uniue #
                    # consonants, store it prefixed by the max abs char      #
                    # complement of the number of consonants in it, so we    #
                    # can sort the words into reverse consonant count order  #
                    words[ w count +:= 1 ] := REPR ( max abs char - consonants ) + word;
                    IF w length > max length THEN max length := w length FI
                FI
            FI
        FI
    OD;
    close( input file );
    # sort the words                                                         #
    s quicksort( words, 1, w count );
    # display the words                                                      #
    INT prev count  := 0;
    INT p count     := 0;
    BOOL need nl    := FALSE;
    FOR w TO w count DO
        STRING s word   = words[ w ];
        INT    count    = max abs char - ABS s word[ 1 ];
        STRING word     = s word[ 2 : ];
        INT    w length = LENGTH word;
        IF count /= prev count THEN
            IF need nl THEN print( ( newline ) ) FI;
            print( ( newline, whole( count, 0 ), " consonants:", newline ) );
            prev count := count;
            p count    := 0;
            need nl    := FALSE
        FI;
        print( ( " ", " " * ( max length - w length ), word ) );
        IF NOT ( need nl := ( p count +:= 1 ) MOD 5 /= 0 ) THEN
            print( ( newline ) )
        FI
    OD
FI
9 consonants:
 comprehensible

8 consonants:
  administrable   anthropology    blameworthy   bluestocking  boustrophedon
    bricklaying  chemisorption    christendom claustrophobia   compensatory
  comprehensive counterexample   demonstrable   disciplinary  discriminable
   geochemistry   hypertensive indecipherable indecomposable indiscoverable
   lexicography   manslaughter   misanthropic    mockingbird   monkeyflower
 neuropathology paralinguistic   pharmacology    pitchblende    playwriting
   shipbuilding    shortcoming    springfield    stenography    stockholder
    switchblade    switchboard    switzerland    thunderclap

7 consonants:
    acknowledge    algorithmic   alphanumeric   ambidextrous    amphibology
    anchoritism    atmospheric  autobiography    bakersfield    bartholomew
  bidirectional    bloodstream  boardinghouse  cartilaginous    centrifugal
    chamberlain    charlemagne    clairvoyant  combinatorial    compensable
    complaisant    conflagrate   conglomerate   conquistador    consumptive
    convertible   cosmopolitan    counterflow    countryside    countrywide
    declamatory   decomposable  decomposition   deliquescent    description
    descriptive    dilogarithm    discernible   discriminate    disturbance
    documentary    earthmoving   encephalitis    endothermic   epistemology
    everlasting   exchangeable    exclamatory   exclusionary    exculpatory
    explanatory extemporaneous   extravaganza    filamentary    fluorescent
   galvanometer    geophysical    glycerinate    groundskeep    herpetology
   heterozygous   homebuilding    honeysuckle    hydrogenate    hyperboloid
   impenetrable  imperceivable   imperishable   imponderable    impregnable
    improvident  improvisation   incomparable   incompatible   incomputable
    incredulity  indefatigable   indigestible   indisputable  inexhaustible
   inextricable   inhospitable    inscrutable   jurisdiction    lawbreaking
    leatherback    leatherneck    leavenworth    logarithmic   loudspeaking
    maidservant   malnourished    marketplace    merchandise    methodology
    misanthrope   mitochondria    molybdenite    nearsighted    obfuscatory
   oceanography    palindromic   paradigmatic   paramagnetic    perfectible
    phraseology    politicking    predicament   presidential    problematic
   proclamation    promiscuity   providential    purchasable    pythagorean
  quasiparticle    quicksilver radiotelephone    sedimentary    selfadjoint
    serendipity    sovereignty    subjunctive    superfluity    terminology
  valedictorian    valedictory verisimilitude    vigilantism    voluntarism

6 consonants:
    aboveground   advantageous    adventurous    aerodynamic    anglophobia
    anisotropic    archipelago    automorphic    baltimorean    beneficiary
   borosilicate    cabinetmake    californium    codetermine    coextensive
    comparative    compilation    composition    confabulate    confederate
    considerate    consolidate   counterpoise    countervail   decisionmake
    declamation    declaration    declarative    deemphasize    deformation
    deliverance    demountable    denumerable    deoxyribose    depreciable
    deprivation    destabilize    diagnosable    diamagnetic    dichotomize
    dichotomous   disambiguate    eigenvector    elizabethan    encapsulate
    enforceable    ephemerides   epidemiology   evolutionary    exceptional
    exclamation    exercisable    exhaustible    exoskeleton    expenditure
   experiential    exploration    fluorescein   geometrician    hemosiderin
    hereinbelow    hermeneutic   heterogamous  heterogeneous   heterosexual
    hexadecimal   hexafluoride    homebuilder    homogeneity    housebroken
    icosahedral    icosahedron    impersonate    imprecision    improvisate
    inadvisable    increasable    incredulous    indivisible    indomitable
   ineradicable    inescapable    inestimable    inexcusable   infelicitous
    informatica    informative    inseparable    insuperable    ionospheric
    justiciable   kaleidescope   kaleidoscope    legerdemain   liquefaction
    loudspeaker    machinelike    magisterial    maladaptive    mantlepiece
    manufacture    masterpiece   meetinghouse    meteorology    minesweeper
    ministerial   multifarious    musculature    observation    patrimonial
    peasanthood   pediatrician    persecution   pertinacious    picturesque
    planetarium    pleistocene    pomegranate    predominate    prejudicial
    prohibition    prohibitive    prolegomena    prosecution    provisional
    provocation    publication  quasiperiodic    reclamation    religiosity
   renegotiable    residential   rooseveltian    safekeeping   saloonkeeper
    serviceable    speedometer    subrogation    sulfonamide    superficial
    superlative    teaspoonful    trapezoidal    tridiagonal    troublesome
   vainglorious    valediction    venturesome    vermiculite   vocabularian
   warehouseman    wisenheimer

5 consonants:
    acquisition    acquisitive    acrimonious    ceremonious    deleterious
   diatomaceous    egalitarian    equilibrate    equilibrium    equinoctial
    expeditious    hereinabove    homogeneous    inequitable    injudicious
    inoperative    inquisitive    interviewee    leeuwenhoek   onomatopoeic
    radioactive    requisition

4 consonants:
    audiovisual    bourgeoisie   onomatopoeia

ALGOL W[edit]

begin % find the words longer than 10 characters that contain most consonants %
    % an element of a WordList %
    record WordListElement ( string(32) w; reference(WordListElement) next );
    % structure to hold lists of words %
    record WordList ( reference(WordListElement) first, last );
    % lists of words indexed by number of consonants %
    reference(WordList) array words ( 1 :: 32 );
    string(32) word;
    integer aCode, aPos, ePos, iPos, oPos, uPos;
    for wPos := 1 until 32 do words( wPos ) := null;
    % allow the program to continue after reaching end-of-file %
    ENDFILE := EXCEPTION( false, 1, 0, false, "EOF" );
    % handle the input %
    aCode := decode( "a" );
    aPos  := 0;
    ePos  := decode( "e" ) - aCode;
    iPos  := decode( "i" ) - aCode;
    oPos  := decode( "o" ) - aCode;
    uPos  := decode( "u" ) - aCode;
    readcard( word );
    while not XCPNOTED(ENDFILE) do begin
        integer len;
        len   := 31;
        while len > 0 and word( len // 1 ) = " " do len := len - 1;
        len   := len + 1;
        if len > 10 then begin % word is at least 11 characters long %
            logical noRepeatedletters;
            integer consonants;
            integer array letterCount ( 0 :: 25 );
            for cPos := 0 until 25 do letterCount( cPos ) := 0;
            for cPos := 0 until len do begin
                integer c;
                c := decode( word( cPos // 1 ) ) - aCode;
                if c >= 0 and c <= 25 then % have a letter % letterCount( c ) := letterCount( c ) + 1;
            end for_cPos;
            % reset the vowel counts %
            letterCount( aPos ) := letterCount( ePos ) := letterCount( iPos ) := letterCount( oPos ) := letterCOunt( uPos ) := 0;
            % check at most 1 of each letter and at least one non-vowel %
            noRepeatedletters   := true;
            consonants          := 0;
            for cPos := 0 until 25 do begin
                if letterCount( cPos ) = 1 then consonants := consonants + 1 
                else if letterCount( cPos ) > 1 then begin
                    % a repeated letter %
                    noRepeatedletters := false;
                    goto endLookFOrRepeatedLetters;
                end if_single_letter__repeated_letter
            end for_cPos ;
endLookFOrRepeatedLetters:
            if consonants > 0 and noRepeatedLetters then begin
                % have a word with more than 10 characters that has no repeated consonants %
                if words( consonants ) not = null then begin
                    % second or subsequent word with this many consonants %
                    last( words( consonants ) ) := next( last( words( consonants ) ) ) := WordListElement( word, null );
                    end
                else begin
                    % first word with this many consonants %
                    words( consonants ) := WordList( WordListElement( word, null ), null );
                    last( words( consonants ) ) := first( words( consonants ) )
                end if_words_consonants_ne_null__
            end if_have_no_repeated_consonants
        end if_len_gt_10 ;
        readcard( word );
    end while_not_eof ;
    % show the words %
    for wPos := 32 step -1 until 1 do begin
        if words( wPos ) not = null then begin
            % have words with wPos consonants %
            reference(WordListElement) rWord;
            integer wNumber;
            write( i_w := 1, s_w := 0,"Words with ", wPos, " consonants:" );
            rWord := first( words( wPos ) );
            wNumber := 0;
            while rWord not = null do begin
                if wNumber rem 5 = 0
                then write( "  ", w( rWord )( 0 // 18 ) )
                else writeon(     w( rWord )( 0 // 18 ) )
                ;
                wNumber := wNUmber + 1;
                rWord := next( rWord )
            end while_rWord_ne_null
        end if_words_wPos_ne_null
    end for_wPos
end.
Words with 9 consonants:
  comprehensible
Words with 8 consonants:
  administrable     anthropology      blameworthy       bluestocking      boustrophedon
  bricklaying       chemisorption     christendom       claustrophobia    compensatory
  comprehensive     counterexample    demonstrable      disciplinary      discriminable
  geochemistry      hypertensive      indecipherable    indecomposable    indiscoverable
  lexicography      manslaughter      misanthropic      mockingbird       monkeyflower
  neuropathology    paralinguistic    pharmacology      pitchblende       playwriting
  shipbuilding      shortcoming       springfield       stenography       stockholder
  switchblade       switchboard       switzerland       thunderclap
Words with 7 consonants:
  acknowledge       algorithmic       alphanumeric      ambidextrous      amphibology
  anchoritism       atmospheric       autobiography     bakersfield       bartholomew
  bidirectional     bloodstream       boardinghouse     cartilaginous     centrifugal
  chamberlain       charlemagne       clairvoyant       combinatorial     compensable
  complaisant       conflagrate       conglomerate      conquistador      consumptive
  convertible       cosmopolitan      counterflow       countryside       countrywide
  declamatory       decomposable      decomposition     deliquescent      description
  descriptive       dilogarithm       discernible       discriminate      disturbance
  documentary       earthmoving       encephalitis      endothermic       epistemology
  everlasting       exchangeable      exclamatory       exclusionary      exculpatory
  explanatory       extemporaneous    extravaganza      filamentary       fluorescent
  galvanometer      geophysical       glycerinate       groundskeep       herpetology
  heterozygous      homebuilding      honeysuckle       hydrogenate       hyperboloid
  impenetrable      imperceivable     imperishable      imponderable      impregnable
  improvident       improvisation     incomparable      incompatible      incomputable
  incredulity       indefatigable     indigestible      indisputable      inexhaustible
  inextricable      inhospitable      inscrutable       jurisdiction      lawbreaking
  leatherback       leatherneck       leavenworth       logarithmic       loudspeaking
  maidservant       malnourished      marketplace       merchandise       methodology
  misanthrope       mitochondria      molybdenite       nearsighted       obfuscatory
  oceanography      palindromic       paradigmatic      paramagnetic      perfectible
  phraseology       politicking       predicament       presidential      problematic
  proclamation      promiscuity       providential      purchasable       pythagorean
  quasiparticle     quicksilver       radiotelephone    sedimentary       selfadjoint
  serendipity       sovereignty       subjunctive       superfluity       terminology
  valedictorian     valedictory       verisimilitude    vigilantism       voluntarism
Words with 6 consonants:
  aboveground       advantageous      adventurous       aerodynamic       anglophobia
  anisotropic       archipelago       automorphic       baltimorean       beneficiary
  borosilicate      cabinetmake       californium       codetermine       coextensive
  comparative       compilation       composition       confabulate       confederate
  considerate       consolidate       counterpoise      countervail       decisionmake
  declamation       declaration       declarative       deemphasize       deformation
  deliverance       demountable       denumerable       deoxyribose       depreciable
  deprivation       destabilize       diagnosable       diamagnetic       dichotomize
  dichotomous       disambiguate      eigenvector       elizabethan       encapsulate
  enforceable       ephemerides       epidemiology      evolutionary      exceptional
  exclamation       exercisable       exhaustible       exoskeleton       expenditure
  experiential      exploration       fluorescein       geometrician      hemosiderin
  hereinbelow       hermeneutic       heterogamous      heterogeneous     heterosexual
  hexadecimal       hexafluoride      homebuilder       homogeneity       housebroken
  icosahedral       icosahedron       impersonate       imprecision       improvisate
  inadvisable       increasable       incredulous       indivisible       indomitable
  ineradicable      inescapable       inestimable       inexcusable       infelicitous
  informatica       informative       inseparable       insuperable       ionospheric
  justiciable       kaleidescope      kaleidoscope      legerdemain       liquefaction
  loudspeaker       machinelike       magisterial       maladaptive       mantlepiece
  manufacture       masterpiece       meetinghouse      meteorology       minesweeper
  ministerial       multifarious      musculature       observation       patrimonial
  peasanthood       pediatrician      persecution       pertinacious      picturesque
  planetarium       pleistocene       pomegranate       predominate       prejudicial
  prohibition       prohibitive       prolegomena       prosecution       provisional
  provocation       publication       quasiperiodic     reclamation       religiosity
  renegotiable      residential       rooseveltian      safekeeping       saloonkeeper
  serviceable       speedometer       subrogation       sulfonamide       superficial
  superlative       teaspoonful       trapezoidal       tridiagonal       troublesome
  vainglorious      valediction       venturesome       vermiculite       vocabularian
  warehouseman      wisenheimer
Words with 5 consonants:
  acquisition       acquisitive       acrimonious       ceremonious       deleterious
  diatomaceous      egalitarian       equilibrate       equilibrium       equinoctial
  expeditious       hereinabove       homogeneous       inequitable       injudicious
  inoperative       inquisitive       interviewee       leeuwenhoek       onomatopoeic
  radioactive       requisition
Words with 4 consonants:
  audiovisual       bourgeoisie       onomatopoeia

Arturo[edit]

words: read.lines relative "unixdict.txt"
vowels: ["a" "e" "i" "o" "u"]

nofConsonants: function [w][
    cons: (split w) -- vowels
    if? cons = unique cons -> return size cons
    else -> return 0
]

freqs: array.of: 20 []

loop words 'word [
    if 10 < size word [
        noc: nofConsonants word
        if noc > 0 [
            freqs[noc]: freqs[noc] ++ word
        ]
    ]
]

loop.with:'i reverse freqs 'freq [
    if not? empty? freq [
        print "-----------------------------------------------"
        print ~"Found |size freq| words with |dec 20-i| different consonants"
        print "-----------------------------------------------"
        print join.with:"n" freq
        print ""
    ]
]
-----------------------------------------------
Found 1 words with 9 different consonants
-----------------------------------------------
comprehensible

-----------------------------------------------
Found 39 words with 8 different consonants
-----------------------------------------------
administrable
anthropology
blameworthy
bluestocking
boustrophedon
bricklaying
chemisorption
christendom
claustrophobia
compensatory
comprehensive
counterexample
demonstrable
disciplinary
discriminable
geochemistry
hypertensive
indecipherable
indecomposable
indiscoverable
lexicography
manslaughter
misanthropic
mockingbird
monkeyflower
neuropathology
paralinguistic
pharmacology
pitchblende
playwriting
shipbuilding
shortcoming
springfield
stenography
stockholder
switchblade
switchboard
switzerland
thunderclap

-----------------------------------------------
Found 130 words with 7 different consonants
-----------------------------------------------
acknowledge
algorithmic
alphanumeric
ambidextrous
amphibology
anchoritism
atmospheric
autobiography
bakersfield
bartholomew
bidirectional
bloodstream
boardinghouse
cartilaginous
centrifugal
chamberlain
charlemagne
clairvoyant
combinatorial
compensable
complaisant
conflagrate
conglomerate
conquistador
consumptive
convertible
cosmopolitan
counterflow
countryside
countrywide
declamatory
decomposable
decomposition
deliquescent
description
descriptive
dilogarithm
discernible
discriminate
disturbance
documentary
earthmoving
encephalitis
endothermic
epistemology
everlasting
exchangeable
exclamatory
exclusionary
exculpatory
explanatory
extemporaneous
extravaganza
filamentary
fluorescent
galvanometer
geophysical
glycerinate
groundskeep
herpetology
heterozygous
homebuilding
honeysuckle
hydrogenate
hyperboloid
impenetrable
imperceivable
imperishable
imponderable
impregnable
improvident
improvisation
incomparable
incompatible
incomputable
incredulity
indefatigable
indigestible
indisputable
inexhaustible
inextricable
inhospitable
inscrutable
jurisdiction
lawbreaking
leatherback
leatherneck
leavenworth
logarithmic
loudspeaking
maidservant
malnourished
marketplace
merchandise
methodology
misanthrope
mitochondria
molybdenite
nearsighted
obfuscatory
oceanography
palindromic
paradigmatic
paramagnetic
perfectible
phraseology
politicking
predicament
presidential
problematic
proclamation
promiscuity
providential
purchasable
pythagorean
quasiparticle
quicksilver
radiotelephone
sedimentary
selfadjoint
serendipity
sovereignty
subjunctive
superfluity
terminology
valedictorian
valedictory
verisimilitude
vigilantism
voluntarism

-----------------------------------------------
Found 152 words with 6 different consonants
-----------------------------------------------
aboveground
advantageous
adventurous
aerodynamic
anglophobia
anisotropic
archipelago
automorphic
baltimorean
beneficiary
borosilicate
cabinetmake
californium
codetermine
coextensive
comparative
compilation
composition
confabulate
confederate
considerate
consolidate
counterpoise
countervail
decisionmake
declamation
declaration
declarative
deemphasize
deformation
deliverance
demountable
denumerable
deoxyribose
depreciable
deprivation
destabilize
diagnosable
diamagnetic
dichotomize
dichotomous
disambiguate
eigenvector
elizabethan
encapsulate
enforceable
ephemerides
epidemiology
evolutionary
exceptional
exclamation
exercisable
exhaustible
exoskeleton
expenditure
experiential
exploration
fluorescein
geometrician
hemosiderin
hereinbelow
hermeneutic
heterogamous
heterogeneous
heterosexual
hexadecimal
hexafluoride
homebuilder
homogeneity
housebroken
icosahedral
icosahedron
impersonate
imprecision
improvisate
inadvisable
increasable
incredulous
indivisible
indomitable
ineradicable
inescapable
inestimable
inexcusable
infelicitous
informatica
informative
inseparable
insuperable
ionospheric
justiciable
kaleidescope
kaleidoscope
legerdemain
liquefaction
loudspeaker
machinelike
magisterial
maladaptive
mantlepiece
manufacture
masterpiece
meetinghouse
meteorology
minesweeper
ministerial
multifarious
musculature
observation
patrimonial
peasanthood
pediatrician
persecution
pertinacious
picturesque
planetarium
pleistocene
pomegranate
predominate
prejudicial
prohibition
prohibitive
prolegomena
prosecution
provisional
provocation
publication
quasiperiodic
reclamation
religiosity
renegotiable
residential
rooseveltian
safekeeping
saloonkeeper
serviceable
speedometer
subrogation
sulfonamide
superficial
superlative
teaspoonful
trapezoidal
tridiagonal
troublesome
vainglorious
valediction
venturesome
vermiculite
vocabularian
warehouseman
wisenheimer

-----------------------------------------------
Found 22 words with 5 different consonants
-----------------------------------------------
acquisition
acquisitive
acrimonious
ceremonious
deleterious
diatomaceous
egalitarian
equilibrate
equilibrium
equinoctial
expeditious
hereinabove
homogeneous
inequitable
injudicious
inoperative
inquisitive
interviewee
leeuwenhoek
onomatopoeic
radioactive
requisition

-----------------------------------------------
Found 3 words with 4 different consonants
-----------------------------------------------
audiovisual
bourgeoisie
onomatopoeia

AutoHotkey[edit]

FileRead, db, % A_Desktop "unixdict.txt"
vowels := ["a", "e", "i", "o", "u"]
oRes := []
for i, word in StrSplit(db, "`n", "`r")
{
    if StrLen(word) < 11
        continue
    tWord := word
    for j, v in vowels
        word := StrReplace(word, v)
    if !(word ~= "(.)(?=.*?1)")
        oRes[0-StrLen(word), tword] := 1 ; result .= tword "`n"
}

for l, obj in oRes
{
    result .= 0-l " Unique consonants, word count: " obj.Count() "`n"
    for word in obj
        result .= word (!Mod(A_Index, 9) ? "`n" : "`t")
    result .= "`n`n"
}
MsgBox, 262144, , % result
9 Unique consonants, word count: 1
comprehensible	

8 Unique consonants, word count: 39
administrable	anthropology	blameworthy	bluestocking	boustrophedon	bricklaying	chemisorption	christendom	claustrophobia
compensatory	comprehensive	counterexample	demonstrable	disciplinary	discriminable	geochemistry	hypertensive	indecipherable
indecomposable	indiscoverable	lexicography	manslaughter	misanthropic	mockingbird	monkeyflower	neuropathology	paralinguistic
pharmacology	pitchblende	playwriting	shipbuilding	shortcoming	springfield	stenography	stockholder	switchblade
switchboard	switzerland	thunderclap	

7 Unique consonants, word count: 130
acknowledge	algorithmic	alphanumeric	ambidextrous	amphibology	anchoritism	atmospheric	autobiography	bakersfield
bartholomew	bidirectional	bloodstream	boardinghouse	cartilaginous	centrifugal	chamberlain	charlemagne	clairvoyant
combinatorial	compensable	complaisant	conflagrate	conglomerate	conquistador	consumptive	convertible	cosmopolitan
counterflow	countryside	countrywide	declamatory	decomposable	decomposition	deliquescent	description	descriptive
dilogarithm	discernible	discriminate	disturbance	documentary	earthmoving	encephalitis	endothermic	epistemology
everlasting	exchangeable	exclamatory	exclusionary	exculpatory	explanatory	extemporaneous	extravaganza	filamentary
fluorescent	galvanometer	geophysical	glycerinate	groundskeep	herpetology	heterozygous	homebuilding	honeysuckle
hydrogenate	hyperboloid	impenetrable	imperceivable	imperishable	imponderable	impregnable	improvident	improvisation
incomparable	incompatible	incomputable	incredulity	indefatigable	indigestible	indisputable	inexhaustible	inextricable
inhospitable	inscrutable	jurisdiction	lawbreaking	leatherback	leatherneck	leavenworth	logarithmic	loudspeaking
maidservant	malnourished	marketplace	merchandise	methodology	misanthrope	mitochondria	molybdenite	nearsighted
obfuscatory	oceanography	palindromic	paradigmatic	paramagnetic	perfectible	phraseology	politicking	predicament
presidential	problematic	proclamation	promiscuity	providential	purchasable	pythagorean	quasiparticle	quicksilver
radiotelephone	sedimentary	selfadjoint	serendipity	sovereignty	subjunctive	superfluity	terminology	valedictorian
valedictory	verisimilitude	vigilantism	voluntarism	

6 Unique consonants, word count: 152
aboveground	advantageous	adventurous	aerodynamic	anglophobia	anisotropic	archipelago	automorphic	baltimorean
beneficiary	borosilicate	cabinetmake	californium	codetermine	coextensive	comparative	compilation	composition
confabulate	confederate	considerate	consolidate	counterpoise	countervail	decisionmake	declamation	declaration
declarative	deemphasize	deformation	deliverance	demountable	denumerable	deoxyribose	depreciable	deprivation
destabilize	diagnosable	diamagnetic	dichotomize	dichotomous	disambiguate	eigenvector	elizabethan	encapsulate
enforceable	ephemerides	epidemiology	evolutionary	exceptional	exclamation	exercisable	exhaustible	exoskeleton
expenditure	experiential	exploration	fluorescein	geometrician	hemosiderin	hereinbelow	hermeneutic	heterogamous
heterogeneous	heterosexual	hexadecimal	hexafluoride	homebuilder	homogeneity	housebroken	icosahedral	icosahedron
impersonate	imprecision	improvisate	inadvisable	increasable	incredulous	indivisible	indomitable	ineradicable
inescapable	inestimable	inexcusable	infelicitous	informatica	informative	inseparable	insuperable	ionospheric
justiciable	kaleidescope	kaleidoscope	legerdemain	liquefaction	loudspeaker	machinelike	magisterial	maladaptive
mantlepiece	manufacture	masterpiece	meetinghouse	meteorology	minesweeper	ministerial	multifarious	musculature
observation	patrimonial	peasanthood	pediatrician	persecution	pertinacious	picturesque	planetarium	pleistocene
pomegranate	predominate	prejudicial	prohibition	prohibitive	prolegomena	prosecution	provisional	provocation
publication	quasiperiodic	reclamation	religiosity	renegotiable	residential	rooseveltian	safekeeping	saloonkeeper
serviceable	speedometer	subrogation	sulfonamide	superficial	superlative	teaspoonful	trapezoidal	tridiagonal
troublesome	vainglorious	valediction	venturesome	vermiculite	vocabularian	warehouseman	wisenheimer	

5 Unique consonants, word count: 22
acquisition	acquisitive	acrimonious	ceremonious	deleterious	diatomaceous	egalitarian	equilibrate	equilibrium
equinoctial	expeditious	hereinabove	homogeneous	inequitable	injudicious	inoperative	inquisitive	interviewee
leeuwenhoek	onomatopoeic	radioactive	requisition	

4 Unique consonants, word count: 3
audiovisual	bourgeoisie	onomatopoeia	

AWK[edit]

# syntax: GAWK -f FIND_WORDS_WHICH_CONTAINS_MOST_CONSONANTS.AWK unixdict.txt
#
# sorting:
#   PROCINFO["sorted_in"] is used by GAWK
#   SORTTYPE is used by Thompson Automation's TAWK
#
BEGIN {
    a2z = "abcdefghijklmnopqrstuvwxyz"
    gsub(/[aeiou]/,"",a2z) # remove vowels
    leng = length(a2z)
}
{   if (length($0) <= 10) {
      next
    }
    consonants = 0
    for (i=1; i<=leng; i++) {
      c = substr(a2z,i,1)
      if (gsub(c,"&",$0) > 1) {
        next
      }
      if (gsub(c,"&",$0) == 1) {
        consonants++
      }
    }
    arr[consonants][$0] = ""
    words++
}
END {
    show = 4
    PROCINFO["sorted_in"] = "@ind_str_asc" ; SORTTYPE = 1
    for (i in arr) {
      printf("%1d %3d ",i,length(arr[i]))
      shown = 0
      for (j in arr[i]) {
        if (++shown <= show) {
          printf("%s ",j)
        }
      }
      printf("%sn",(length(arr[i])>show)?(" ...  "j):"")
    }
    printf("%5d wordsn",words)
    exit(0)
}
4   3 audiovisual bourgeoisie onomatopoeia
5  22 acquisition acquisitive acrimonious ceremonious  ...  requisition
6 152 aboveground advantageous adventurous aerodynamic  ...  wisenheimer
7 130 acknowledge algorithmic alphanumeric ambidextrous  ...  voluntarism
8  39 administrable anthropology blameworthy bluestocking  ...  thunderclap
9   1 comprehensible
  347 words

C++[edit]

#include <bitset>
#include <cctype>
#include <cstdlib>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <map>
#include <string>
#include <vector>

// Returns number of consonants in the word if they are all unique,
// otherwise zero.
size_t consonants(const std::string& word) {
    std::bitset<26> bits;
    size_t bit = 0;
    for (char ch : word) {
        ch = std::tolower(static_cast<unsigned char>(ch));
        if (ch < 'a' || ch > 'z')
            continue;
        switch (ch) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
            break;
        default:
            bit = ch - 'a';
            if (bits.test(bit))
                return 0;
            bits.set(bit);
            break;
        }
    }
    return bits.count();
}

int main(int argc, char** argv) {
    const char* filename(argc < 2 ? "unixdict.txt" : argv[1]);
    std::ifstream in(filename);
    if (!in) {
        std::cerr << "Cannot open file '" << filename << "'.n";
        return EXIT_FAILURE;
    }
    std::string word;
    std::map<size_t, std::vector<std::string>, std::greater<int>> map;
    while (getline(in, word)) {
        if (word.size() <= 10)
            continue;
        size_t count = consonants(word);
        if (count != 0)
            map[count].push_back(word);
    }
    const int columns = 4;
    for (const auto& p : map) {
        std::cout << p.first << " consonants (" << p.second.size() << "):n";
        int n = 0;
        for (const auto& word : p.second) {
            std::cout << std::left << std::setw(18) << word;
            ++n;
            if (n % columns == 0)
                std::cout << 'n';
        }
        if (n % columns != 0)
            std::cout << 'n';
        std::cout << 'n';
    }
    return EXIT_SUCCESS;
}
9 consonants (1):
comprehensible    

8 consonants (39):
administrable     anthropology      blameworthy       bluestocking      
boustrophedon     bricklaying       chemisorption     christendom       
claustrophobia    compensatory      comprehensive     counterexample    
demonstrable      disciplinary      discriminable     geochemistry      
hypertensive      indecipherable    indecomposable    indiscoverable    
lexicography      manslaughter      misanthropic      mockingbird       
monkeyflower      neuropathology    paralinguistic    pharmacology      
pitchblende       playwriting       shipbuilding      shortcoming       
springfield       stenography       stockholder       switchblade       
switchboard       switzerland       thunderclap       

7 consonants (130):
acknowledge       algorithmic       alphanumeric      ambidextrous      
amphibology       anchoritism       atmospheric       autobiography     
bakersfield       bartholomew       bidirectional     bloodstream       
boardinghouse     cartilaginous     centrifugal       chamberlain       
charlemagne       clairvoyant       combinatorial     compensable       
complaisant       conflagrate       conglomerate      conquistador      
consumptive       convertible       cosmopolitan      counterflow       
countryside       countrywide       declamatory       decomposable      
decomposition     deliquescent      description       descriptive       
dilogarithm       discernible       discriminate      disturbance       
documentary       earthmoving       encephalitis      endothermic       
epistemology      everlasting       exchangeable      exclamatory       
exclusionary      exculpatory       explanatory       extemporaneous    
extravaganza      filamentary       fluorescent       galvanometer      
geophysical       glycerinate       groundskeep       herpetology       
heterozygous      homebuilding      honeysuckle       hydrogenate       
hyperboloid       impenetrable      imperceivable     imperishable      
imponderable      impregnable       improvident       improvisation     
incomparable      incompatible      incomputable      incredulity       
indefatigable     indigestible      indisputable      inexhaustible     
inextricable      inhospitable      inscrutable       jurisdiction      
lawbreaking       leatherback       leatherneck       leavenworth       
logarithmic       loudspeaking      maidservant       malnourished      
marketplace       merchandise       methodology       misanthrope       
mitochondria      molybdenite       nearsighted       obfuscatory       
oceanography      palindromic       paradigmatic      paramagnetic      
perfectible       phraseology       politicking       predicament       
presidential      problematic       proclamation      promiscuity       
providential      purchasable       pythagorean       quasiparticle     
quicksilver       radiotelephone    sedimentary       selfadjoint       
serendipity       sovereignty       subjunctive       superfluity       
terminology       valedictorian     valedictory       verisimilitude    
vigilantism       voluntarism       

6 consonants (152):
aboveground       advantageous      adventurous       aerodynamic       
anglophobia       anisotropic       archipelago       automorphic       
baltimorean       beneficiary       borosilicate      cabinetmake       
californium       codetermine       coextensive       comparative       
compilation       composition       confabulate       confederate       
considerate       consolidate       counterpoise      countervail       
decisionmake      declamation       declaration       declarative       
deemphasize       deformation       deliverance       demountable       
denumerable       deoxyribose       depreciable       deprivation       
destabilize       diagnosable       diamagnetic       dichotomize       
dichotomous       disambiguate      eigenvector       elizabethan       
encapsulate       enforceable       ephemerides       epidemiology      
evolutionary      exceptional       exclamation       exercisable       
exhaustible       exoskeleton       expenditure       experiential      
exploration       fluorescein       geometrician      hemosiderin       
hereinbelow       hermeneutic       heterogamous      heterogeneous     
heterosexual      hexadecimal       hexafluoride      homebuilder       
homogeneity       housebroken       icosahedral       icosahedron       
impersonate       imprecision       improvisate       inadvisable       
increasable       incredulous       indivisible       indomitable       
ineradicable      inescapable       inestimable       inexcusable       
infelicitous      informatica       informative       inseparable       
insuperable       ionospheric       justiciable       kaleidescope      
kaleidoscope      legerdemain       liquefaction      loudspeaker       
machinelike       magisterial       maladaptive       mantlepiece       
manufacture       masterpiece       meetinghouse      meteorology       
minesweeper       ministerial       multifarious      musculature       
observation       patrimonial       peasanthood       pediatrician      
persecution       pertinacious      picturesque       planetarium       
pleistocene       pomegranate       predominate       prejudicial       
prohibition       prohibitive       prolegomena       prosecution       
provisional       provocation       publication       quasiperiodic     
reclamation       religiosity       renegotiable      residential       
rooseveltian      safekeeping       saloonkeeper      serviceable       
speedometer       subrogation       sulfonamide       superficial       
superlative       teaspoonful       trapezoidal       tridiagonal       
troublesome       vainglorious      valediction       venturesome       
vermiculite       vocabularian      warehouseman      wisenheimer       

5 consonants (22):
acquisition       acquisitive       acrimonious       ceremonious       
deleterious       diatomaceous      egalitarian       equilibrate       
equilibrium       equinoctial       expeditious       hereinabove       
homogeneous       inequitable       injudicious       inoperative       
inquisitive       interviewee       leeuwenhoek       onomatopoeic      
radioactive       requisition       

4 consonants (3):
audiovisual       bourgeoisie       onomatopoeia      

CLU[edit]

% If a word has no repeated consonants, return the amount
% of consonants. If it does have repeated consonants, return
% -1.
consonants = proc (word: string) returns (int)
    own vowels: string := "aeiou" % shorter than listing all consonants
    letters: array[int] := array[int]$fill(0,26,0)
    
    for c: char in string$chars(word) do
        if string$indexc(c,vowels) ~= 0 then continue end
        if c<'a' cor c>'z' then continue end
        i: int := char$c2i(c) - char$c2i('a')
        letters[i] := letters[i] + 1
    end
    
    total: int := 0
    for i: int in array[int]$elements(letters) do
        if i>1 then return(-1) end
        total := total + i
    end
    return(total)
end consonants

start_up = proc ()
    dictfile: file_name := file_name$parse("unixdict.txt")
    dict: stream := stream$open(dictfile, "read")

    words: array[array[string]] := 
        array[array[string]]$fill_copy(0,10,array[string]$[])
    
    while true do
        word: string := stream$getl(dict)
        if string$size(word) <= 10 then continue end
        n: int := consonants(word)
        array[string]$addh(words[n], word)
        except when bounds: end 
    end
    except when end_of_file: 
        stream$close(dict)
    end
    
    po: stream := stream$primary_output()
    for word_list: array[string] in array[array[string]]$elements(words) do
        if array[string]$empty(word_list) then continue end
        size: int := array[string]$size(word_list)
        cons: int := consonants(array[string]$bottom(word_list))
        stream$putl(po, int$unparse(cons) || " consonants - " 
                || int$unparse(size) || " words:")
        col: int := 0
        for word: string in array[string]$elements(word_list) do
            stream$putleft(po, word, 20)
            col := col + 1
            if col = 4 then
                stream$putl(po, "")
                col := 0
            end
        end
        if col ~= 0 then stream$putl(po, "") end
        stream$putl(po, "") 
    end
end start_up
4 consonants - 3 words:
audiovisual         bourgeoisie         onomatopoeia

5 consonants - 22 words:
acquisition         acquisitive         acrimonious         ceremonious
deleterious         diatomaceous        egalitarian         equilibrate
equilibrium         equinoctial         expeditious         hereinabove
homogeneous         inequitable         injudicious         inoperative
inquisitive         interviewee         leeuwenhoek         onomatopoeic
radioactive         requisition

6 consonants - 152 words:
aboveground         advantageous        adventurous         aerodynamic
anglophobia         anisotropic         archipelago         automorphic
baltimorean         beneficiary         borosilicate        cabinetmake
californium         codetermine         coextensive         comparative
compilation         composition         confabulate         confederate
considerate         consolidate         counterpoise        countervail
decisionmake        declamation         declaration         declarative
deemphasize         deformation         deliverance         demountable
denumerable         deoxyribose         depreciable         deprivation
destabilize         diagnosable         diamagnetic         dichotomize
dichotomous         disambiguate        eigenvector         elizabethan
encapsulate         enforceable         ephemerides         epidemiology
evolutionary        exceptional         exclamation         exercisable
exhaustible         exoskeleton         expenditure         experiential
exploration         fluorescein         geometrician        hemosiderin
hereinbelow         hermeneutic         heterogamous        heterogeneous
heterosexual        hexadecimal         hexafluoride        homebuilder
homogeneity         housebroken         icosahedral         icosahedron
impersonate         imprecision         improvisate         inadvisable
increasable         incredulous         indivisible         indomitable
ineradicable        inescapable         inestimable         inexcusable
infelicitous        informatica         informative         inseparable
insuperable         ionospheric         justiciable         kaleidescope
kaleidoscope        legerdemain         liquefaction        loudspeaker
machinelike         magisterial         maladaptive         mantlepiece
manufacture         masterpiece         meetinghouse        meteorology
minesweeper         ministerial         multifarious        musculature
observation         patrimonial         peasanthood         pediatrician
persecution         pertinacious        picturesque         planetarium
pleistocene         pomegranate         predominate         prejudicial
prohibition         prohibitive         prolegomena         prosecution
provisional         provocation         publication         quasiperiodic
reclamation         religiosity         renegotiable        residential
rooseveltian        safekeeping         saloonkeeper        serviceable
speedometer         subrogation         sulfonamide         superficial
superlative         teaspoonful         trapezoidal         tridiagonal
troublesome         vainglorious        valediction         venturesome
vermiculite         vocabularian        warehouseman        wisenheimer

7 consonants - 130 words:
acknowledge         algorithmic         alphanumeric        ambidextrous
amphibology         anchoritism         atmospheric         autobiography
bakersfield         bartholomew         bidirectional       bloodstream
boardinghouse       cartilaginous       centrifugal         chamberlain
charlemagne         clairvoyant         combinatorial       compensable
complaisant         conflagrate         conglomerate        conquistador
consumptive         convertible         cosmopolitan        counterflow
countryside         countrywide         declamatory         decomposable
decomposition       deliquescent        description         descriptive
dilogarithm         discernible         discriminate        disturbance
documentary         earthmoving         encephalitis        endothermic
epistemology        everlasting         exchangeable        exclamatory
exclusionary        exculpatory         explanatory         extemporaneous
extravaganza        filamentary         fluorescent         galvanometer
geophysical         glycerinate         groundskeep         herpetology
heterozygous        homebuilding        honeysuckle         hydrogenate
hyperboloid         impenetrable        imperceivable       imperishable
imponderable        impregnable         improvident         improvisation
incomparable        incompatible        incomputable        incredulity
indefatigable       indigestible        indisputable        inexhaustible
inextricable        inhospitable        inscrutable         jurisdiction
lawbreaking         leatherback         leatherneck         leavenworth
logarithmic         loudspeaking        maidservant         malnourished
marketplace         merchandise         methodology         misanthrope
mitochondria        molybdenite         nearsighted         obfuscatory
oceanography        palindromic         paradigmatic        paramagnetic
perfectible         phraseology         politicking         predicament
presidential        problematic         proclamation        promiscuity
providential        purchasable         pythagorean         quasiparticle
quicksilver         radiotelephone      sedimentary         selfadjoint
serendipity         sovereignty         subjunctive         superfluity
terminology         valedictorian       valedictory         verisimilitude
vigilantism         voluntarism

8 consonants - 39 words:
administrable       anthropology        blameworthy         bluestocking
boustrophedon       bricklaying         chemisorption       christendom
claustrophobia      compensatory        comprehensive       counterexample
demonstrable        disciplinary        discriminable       geochemistry
hypertensive        indecipherable      indecomposable      indiscoverable
lexicography        manslaughter        misanthropic        mockingbird
monkeyflower        neuropathology      paralinguistic      pharmacology
pitchblende         playwriting         shipbuilding        shortcoming
springfield         stenography         stockholder         switchblade
switchboard         switzerland         thunderclap

9 consonants - 1 words:
comprehensible

F#[edit]

// Word(s) containing most consonants. Nigel Galloway: February 18th., 2021
let vowels=set['a';'e';'i';'o';'u']
let fN g=let g=g|>Seq.filter(vowels.Contains>>not)|>Array.ofSeq in if g=(g|>Array.distinct) then g.Length else 0
printfn "%A" (seq{use n=System.IO.File.OpenText("unixdict.txt") in while not n.EndOfStream do yield n.ReadLine()}|>Seq.filter(fun n->n.Length>10)|>Seq.groupBy fN|>Seq.sortBy fst|>Seq.last)
(9, seq ["comprehensible"])

Factor[edit]

USING: assocs formatting io.encodings.ascii io.files kernel math
prettyprint prettyprint.config sequences sets sets.extras ;
FROM: namespaces => set ;

"unixdict.txt" ascii file-lines
[ length 10 > ] filter
[ "aeiou" without all-unique? ] filter dup length
"Found %d words with unique consonants (length > 10).n" printf
[ [ "aeiou" member? not ] count ] collect-by >alist reverse

6 length-limit set 100 margin set .
Found 347 words with unique consonants (length > 10).
{
    { 9 V{ "comprehensible" } }
    { 8 V{ "administrable" "anthropology" "blameworthy" "bluestocking" "boustrophedon" ~34 more~ } }
    { 7 V{ "acknowledge" "algorithmic" "alphanumeric" "ambidextrous" "amphibology" ~125 more~ } }
    { 6 V{ "aboveground" "advantageous" "adventurous" "aerodynamic" "anglophobia" ~147 more~ } }
    { 5 V{ "acquisition" "acquisitive" "acrimonious" "ceremonious" "deleterious" ~17 more~ } }
    { 4 V{ "audiovisual" "bourgeoisie" "onomatopoeia" } }
}

FreeBASIC[edit]

function uniq_cons( s as string ) as integer
    dim letter( 1 to 26 ) as boolean
    dim as uinteger n, i
    dim as string*1 c
    for i = 1 to len(s)
        c = lcase(mid(s,i,1))
        if c = "a" or c = "e" or c = "i" or c = "o" or c = "u" then continue for
        if letter(asc(c)-97)=true then return 0
        letter(asc(c)-97)=true
        n+=1
    next i
    return n
end function

dim as string ln
dim as integer u

open "unixdict.txt" for input as #1
while not eof(1)
    line input #1, ln
    if len(ln)<11 then continue while
    u=uniq_cons(ln)
    if u>0 then print ln;":  ";u;" distint consonants"
wend

close #1

FutureBasic[edit]

#build WarnOfScopedVars NO

local fn Words as CFArrayRef
  CFURLRef    url    = fn URLWithString( @"http://wiki.puzzlers.org/pub/wordlists/unixdict.txt" )
  CFStringRef string = fn StringWithContentsOfURL( url, NSUTF8StringEncoding, NULL )
  CFArrayRef  array  = fn StringComponentsSeparatedByCharactersInSet( string, fn CharacterSetNewlineSet )
end fn = fn ArrayFilteredArrayUsingPredicate( array, fn PredicateWithFormat( @"self.length > %d", 10 ) )


local fn StringByDeletingCharactersInSet( inString as CFStringRef, set as CFCharacterSetRef ) as CFStringRef
  CFMutableStringRef outString = fn MutableStringWithCapacity(0)
  long               i, length = len(inString)
  
  for i = 0 to length - 1
    unichar c = fn StringCharacterAtIndex( inString, i )
    if ( fn CharacterSetCharacterIsMember( set, c ) == NO )
      MutableStringAppendFormat( outString, @"%C", c )
    end if
  next
end fn = outString


void local fn DoIt
  CFArrayRef        words    = fn Words
  CFCharacterSetRef vowelSet = fn CharacterSetWithCharactersInString( @"aeiou" )
  CFMutableArrayRef array    = fn MutableArrayWithCapacity(0)
  long              maxCons  = 0
  CFStringRef       wd
  
  for wd in words
    CFStringRef     wd2       = fn StringByDeletingCharactersInSet( wd, vowelSet )// remove vowels
    CFMutableSetRef mutSet    = fn MutableSetWithCapacity(0)
    long            i, length = len(wd2)
    
    for i = 0 to length - 1
      MutableSetAddObject( mutSet, mid(wd2,i,1) )
    next
    
    if ( length == len(mutSet) ) // if equal lengths, there are no duplicate consonants
      if ( length >= maxCons )
        if ( length > maxCons ) // more consonants in current word so clear array
          MutableArrayRemoveAllObjects( array )
          maxCons = length
        end if
        MutableArrayAddObject( array, wd )
      end if
    end if
  next
  
  print fn ArrayComponentsJoinedByString( array, @"n" )
end fn

fn DoIt

HandleEvents
comprehensible

Go[edit]

Translation of: Wren

package main

import (
    "bytes"
    "fmt"
    "io/ioutil"
    "log"
    "unicode/utf8"
)

func contains(list []int, value int) bool {
    for _, v := range list {
        if v == value {
            return true
        }
    }
    return false
}

func main() {
    wordList := "unixdict.txt"
    b, err := ioutil.ReadFile(wordList)
    if err != nil {
        log.Fatal("Error reading file")
    }
    bwords := bytes.Fields(b)
    var words []string
    for _, bword := range bwords {
        s := string(bword)
        if utf8.RuneCountInString(s) > 10 {
            words = append(words, s)
        }
    }
    vowelIndices := []int{0, 4, 8, 14, 20}
    wordGroups := make([][]string, 12)
    for _, word := range words {
        letters := make([]int, 26)
        for _, c := range word {
            index := c - 97
            if index >= 0 && index < 26 {
                letters[index]++
            }
        }
        eligible := true
        uc := 0 // number of unique consonants
        for i := 0; i < 26; i++ {
            if !contains(vowelIndices, i) {
                if letters[i] > 1 {
                    eligible = false
                    break
                } else if letters[i] == 1 {
                    uc++
                }
            }
        }
        if eligible {
            wordGroups[uc] = append(wordGroups[uc], word)
        }
    }

    for i := 11; i >= 0; i-- {
        count := len(wordGroups[i])
        if count > 0 {
            s := "s"
            if count == 1 {
                s = ""
            }
            fmt.Printf("%d word%s found with %d unique consonants:n", count, s, i)
            for j := 0; j < count; j++ {
                fmt.Printf("%-15s", wordGroups[i][j])
                if j > 0 && (j+1)%5 == 0 {
                    fmt.Println()
                }
            }
            fmt.Println()
            if count%5 != 0 {
                fmt.Println()
            }
        }
    }
}
Same as Wren example.

Haskell[edit]

{-# LANGUAGE LambdaCase #-}

-- Given a list of words on stdin, write to stdout the set of words having the
-- greatest number of distinct, English consonants.  In any given word, each
-- consonant may appear only once.  We consider Y to always be a consonant.

import Data.Bifunctor (first)
import Data.Char (toUpper)
import Data.Function (on)
import Data.List ((\), groupBy, intersect, nub, sortOn)
import Data.Ord (Down(..))

-- The consonants.
consonants :: String
consonants = cons ++ map toUpper cons
  where cons = ['a'..'z'] \ "aeiou"

-- Only the consonants in the argument.
onlyConsonants :: String -> String
onlyConsonants = (`intersect` consonants)

-- The list of all strings having the greatest number of distinct consonants.
mostDistinctConsonants :: [String] -> [String]
mostDistinctConsonants = map snd
                       . head'
                       . groupBy ((==) `on` fst)
                       . sortOn (Down . fst)
                       . map (first length)
                       . filter (allDistinct . fst)
                       . map (s -> (onlyConsonants s, s))
  where head' = case { [] -> []; (xs:_) -> xs; }
        allDistinct s = s == nub s

main :: IO ()
main = interact (unlines . mostDistinctConsonants . filter longEnough . words)
  where longEnough xs = length xs > 10
comprehensible

Or, in terms of Data.Set, choosing just one of various possible interpretations of an ambiguous task description.

import Data.Char (toLower)
import Data.Function (on)
import Data.List (groupBy, sortOn, (\))
import Data.Ord (Down (..))
import qualified Data.Set as S

-- WORDS USING LARGEST SUBSET OF GIVEN SET OF CHARACTERS -

uniqueGlyphCounts :: S.Set Char -> [String] -> [[(String, Int)]]
uniqueGlyphCounts glyphs ws =
  groupBy (on (==) snd) . sortOn (Down . snd) $
    ((,) <*> (S.size . S.intersection glyphs . S.fromList))
      <$> ws

--------------------------- TEST -------------------------
consonants :: S.Set Char
consonants =
  S.fromList $
    ((<>) <*> fmap toLower)
      (['A' .. 'Z'] \ "AEIOU")

main :: IO ()
main =
  readFile "unixdict.txt"
    >>= mapM_ (mapM_ print)
      . take 1
      . uniqueGlyphCounts consonants
      . lines
("bremsstrahlung",9)
("comprehensible",9)
("crystallographer",9)
("crystallography",9)
("electroencephalogram",9)
("electroencephalography",9)
("handicraftsman",9)
("handicraftsmen",9)
("immunoelectrophoresis",9)
("incomprehensible",9)
("knightsbridge",9)

or adjusting the test above to return only words which use no consonant twice:

main :: IO ()
main =
  readFile "unixdict.txt"
    >>= mapM_ (mapM_ print)
      . fmap (filter noConsonantTwice)
      . take 1
      . uniqueGlyphCounts consonants
      . lines

noConsonantTwice :: (String, Int) -> Bool
noConsonantTwice =
  uncurry
    ( (==)
        . length
        . filter (`S.member` consonants)
    )
("comprehensible",9)

J[edit]

   >(#~ [: (= >./) #@(~.#~ ~.-:])@-.&'aeiou'@>) cutLF fread'unixdict.txt'
comprehensible

JavaScript[edit]

For file IO, this version relies on the macOS ObjC classes exposed to JavaScript for Automation.

(() => {
    "use strict";

    // ----- WORDS USING LARGEST SETS OF CONSONANTS ------

    // uniqueGlyphCounts :: Int -> S.Set Char ->
    // [String] -> [[(String, Int)]]
    const uniqueGlyphCounts = n =>
        // Words of length greater than n, tupled with the
        // size of their subset of used glyphs, and grouped
        // accordingly – sorted by descending set size.
        glyphSet => ws => groupBy(
            on(a => b => a === b)(snd)
        )(
            sortBy(
                flip(comparing(snd))
            )(
                ws.flatMap(
                    w => n < w.length ? [[
                        w,
                        intersection(glyphSet)(
                            new Set([...w])
                        ).size
                    ]] : []
                )
            )
        );


    // noGlyphTwice :: Set Char -> (String, Int) -> Bool
    const noGlyphTwice = glyphs =>
        // True if the number of characters in the string
        // that are included in glyphs matches the
        // precalculated size of the set of glyphs used.
        sn => sn[1] === [...sn[0]]
            .filter(c => glyphs.has(c))
            .length;


    // ---------------------- TEST -----------------------
    // main :: IO ()
    const main = () => {
        const
            upperCs = (
                enumFromToChar("A")("Z")
            ).filter(c => !"AEIOU".includes(c)),
            consonants = new Set(
                [...upperCs, ...upperCs.map(toLower)]
            ),
            noRepetition = noGlyphTwice(consonants);

        return take(1)(
            uniqueGlyphCounts(10)(consonants)(
                readFile("unixdict.txt").split("n")
            )
        )[0].filter(noRepetition);
    };


    // --------------------- GENERIC ---------------------

    // Tuple (,) :: a -> b -> (a, b)
    const Tuple = a =>
    // A pair of values, possibly of
    // different types.
        b => ({
            type: "Tuple",
            "0": a,
            "1": b,
            length: 2,
            *[Symbol.iterator]() {
                for (const k in this) {
                    if (!isNaN(k)) {
                        yield this[k];
                    }
                }
            }
        });


    // comparing :: Ord a => (b -> a) -> b -> b -> Ordering
    const comparing = f =>
    // The ordering of f(x) and f(y) as a value
    // drawn from {-1, 0, 1}, representing {LT, EQ, GT}.
        x => y => {
            const
                a = f(x),
                b = f(y);

            return a < b ? -1 : (a > b ? 1 : 0);
        };


    // enumFromToChar :: Char -> Char -> [Char]
    const enumFromToChar = m =>
        n => {
            const [intM, intN] = [m, n].map(
                x => x.codePointAt(0)
            );

            return Array.from({
                length: Math.floor(intN - intM) + 1
            }, (_, i) => String.fromCodePoint(intM + i));
        };


    // flip :: (a -> b -> c) -> b -> a -> c
    const flip = op =>
    // The binary function op with
    // its arguments reversed.
        1 !== op.length ? (
            (a, b) => op(b, a)
        ) : (a => b => op(b)(a));


    // groupBy :: (a -> a -> Bool) -> [a] -> [[a]]
    const groupBy = eqOp =>
    // A list of lists, each containing only elements
    // equal under the given equality operator,
    // such that the concatenation of these lists is xs.
        xs => Boolean(xs.length) ? (() => {
            const [h, ...t] = xs;
            const [groups, g] = t.reduce(
                ([gs, a], x) => eqOp(x)(a[0]) ? (
                    Tuple(gs)([...a, x])
                ) : Tuple([...gs, a])([x]),
                Tuple([])([h])
            );

            return [...groups, g];
        })() : [];


    // intersection :: Set -> Set -> Set
    const intersection = a =>
    // The intersection of two sets.
        b => new Set([...a].filter(i => b.has(i)));


    // on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
    const on = f =>
    // e.g. groupBy(on(eq)(length))
        g => a => b => f(g(a))(g(b));


    // readFile :: FilePath -> IO String
    const readFile = fp => {
    // The contents of a text file at the
    // given file path.
        const
            e = $(),
            ns = $.NSString
                .stringWithContentsOfFileEncodingError(
                    $(fp).stringByStandardizingPath,
                    $.NSUTF8StringEncoding,
                    e
                );

        return ObjC.unwrap(
            ns.isNil() ? (
                e.localizedDescription
            ) : ns
        );
    };


    // snd :: (a, b) -> b
    const snd = tpl =>
    // Second member of a pair.
        tpl[1];


    // sortBy :: (a -> a -> Ordering) -> [a] -> [a]
    const sortBy = f =>
    // A copy of xs sorted by the comparator function f.
        xs => xs.slice()
            .sort((a, b) => f(a)(b));


    // take :: Int -> [a] -> [a]
    // take :: Int -> String -> String
    const take = n =>
    // The first n elements of a list,
    // string of characters, or stream.
        xs => "GeneratorFunction" !== xs
            .constructor.constructor.name ? (
                xs.slice(0, n)
            ) : Array.from({
                length: n
            }, () => {
                const x = xs.next();

                return x.done ? [] : [x.value];
            }).flat();


    // toLower :: String -> String
    const toLower = s =>
    // Lower-case version of string.
        s.toLocaleLowerCase();


    // MAIN ---
    return JSON.stringify(main());
})();
[["comprehensible",9]]

jq[edit]

Works with: jq

Works with gojq, the Go implementation of jq

In this entry, two subtasks are considered:

(a) determine the eligible words with the maximal number of consonants;

(b) group the eligible words by the number of consonants, and show these groups if the number of consonants is greater than 7.

Preliminaries

# "bag of words"
def bow(stream): 
  reduce stream as $word ({}; .[($word|tostring)] += 1);

# Given an array of values as input, generate a stream of values of the maximal elements as determined by f.
# Notes:
# 1. If the input is [] then the output stream is empty.
# 2. If f evaluates to null for all the input elements, then the output stream will be the stream of all the input items.
def maximal_by(f):
  (map(f) | max) as $mx
  | .[] | select(f == $mx);

def consonants: gsub("[aeiou]";"");

def letters_are_distinct:
  bow(explode[])
  | all(.[]; . == 1);

The Tasks

def tasks:

  def taskA:
    maximal_by(.[1]) | .[0];
    
  def taskB:
    map(select(.[1]|length > 7))
    | group_by(.[1])
    | map( .[0][1] as $m | [$m, map(.[0])] )
    | .[]
    | if .[1]|length==1 
      then "nThe eligible word with (.[0]) consonants is:"
      else "nThe eligible words with (.[0]) consonants are:"
      end,
      .[1] ;

  [inputs
   | select(length>10)
   | consonants as $c
   | select($c | letters_are_distinct)
   | [., ($c|length)] ]
  | ("Eligible words with the maximal number of consonants:",
     taskA,
     taskB) ;

tasks

Invocation example: jq -nRrM program.jq unixdict.txt

Eligible words with the maximal number of consonants:
comprehensible

The eligible words with 8 consonants are:
["administrable","anthropology","blameworthy","bluestocking","boustrophedon","bricklaying","chemisorption","christendom","claustrophobia","compensatory","comprehensive","counterexample","demonstrable","disciplinary","discriminable","geochemistry","hypertensive","indecipherable","indecomposable","indiscoverable","lexicography","manslaughter","misanthropic","mockingbird","monkeyflower","neuropathology","paralinguistic","pharmacology","pitchblende","playwriting","shipbuilding","shortcoming","springfield","stenography","stockholder","switchblade","switchboard","switzerland","thunderclap"]

The eligible word with 9 consonants is:
["comprehensible"]

Julia[edit]

Translation of: Phix

consonant(ch) = !(ch in ['a', 'e', 'i', 'o', 'u'])
singlec(consonants) = length(unique(consonants)) == length(consonants)
over10sc(word) = length(word) > 10 && singlec(filter(consonant, word))
mostc(word) = [-length(filter(consonant, word)), word]
const res = sort(map(mostc, filter(over10sc, split(read("unixdict.txt", String), r"s+"))))
println(length(res), " words found.nnWord        Consonantsn----------------------")
foreach(a -> println(rpad(a[2], 16), -a[1]), res)
347 words found.

Word        Consonants
----------------------
comprehensible  9
administrable   8
anthropology    8
blameworthy     8
bluestocking    8
boustrophedon   8
bricklaying     8
chemisorption   8
christendom     8
claustrophobia  8
compensatory    8
comprehensive   8
counterexample  8

-- multiple lines deleted --

audiovisual     4
bourgeoisie     4
onomatopoeia    4

Mathematica/Wolfram Language[edit]

consonants = DeleteCases[Alphabet[], Alternatives @@ Characters["euioa"]];
dict = Once[Import["https://web.archive.org/web/20180611003215/http://www.puzzlers.org/pub/wordlists/unixdict.txt"]];
dict //= StringSplit[#, "n"] &;
dict //= Select[StringLength /* GreaterThan[10]];
dict = {#, Select[Characters[#], MemberQ[consonants, #] &]} & /@ dict;
dict //= Select[Last /* DuplicateFreeQ];
SortBy[GatherBy[dict, Last /* Length], First /* Last /* Length][[All, All, 1]] // Column
{audiovisual,bourgeoisie,onomatopoeia}

{acquisition,acquisitive,acrimonious,ceremonious,deleterious,diatomaceous,egalitarian,equilibrate,equilibrium,equinoctial,expeditious,hereinabove,homogeneous,inequitable,injudicious,inoperative,inquisitive,interviewee,leeuwenhoek,onomatopoeic,radioactive,requisition}

{aboveground,advantageous,adventurous,aerodynamic,anglophobia,anisotropic,archipelago,automorphic,baltimorean,beneficiary,borosilicate,cabinetmake,californium,codetermine,coextensive,comparative,compilation,composition,confabulate,confederate,considerate,consolidate,counterpoise,countervail,decisionmake,declamation,declaration,declarative,deemphasize,deformation,deliverance,demountable,denumerable,deoxyribose,depreciable,deprivation,destabilize,diagnosable,diamagnetic,dichotomize,dichotomous,disambiguate,eigenvector,elizabethan,encapsulate,enforceable,ephemerides,epidemiology,evolutionary,exceptional,exclamation,exercisable,exhaustible,exoskeleton,expenditure,experiential,exploration,fluorescein,geometrician,hemosiderin,hereinbelow,hermeneutic,heterogamous,heterogeneous,heterosexual,hexadecimal,hexafluoride,homebuilder,homogeneity,housebroken,icosahedral,icosahedron,impersonate,imprecision,improvisate,inadvisable,increasable,incredulous,indivisible,indomitable,ineradicable,inescapable,inestimable,inexcusable,infelicitous,informatica,informative,inseparable,insuperable,ionospheric,justiciable,kaleidescope,kaleidoscope,legerdemain,liquefaction,loudspeaker,machinelike,magisterial,maladaptive,mantlepiece,manufacture,masterpiece,meetinghouse,meteorology,minesweeper,ministerial,multifarious,musculature,observation,patrimonial,peasanthood,pediatrician,persecution,pertinacious,picturesque,planetarium,pleistocene,pomegranate,predominate,prejudicial,prohibition,prohibitive,prolegomena,prosecution,provisional,provocation,publication,quasiperiodic,reclamation,religiosity,renegotiable,residential,rooseveltian,safekeeping,saloonkeeper,serviceable,speedometer,subrogation,sulfonamide,superficial,superlative,teaspoonful,trapezoidal,tridiagonal,troublesome,vainglorious,valediction,venturesome,vermiculite,vocabularian,warehouseman,wisenheimer}

{acknowledge,algorithmic,alphanumeric,ambidextrous,amphibology,anchoritism,atmospheric,autobiography,bakersfield,bartholomew,bidirectional,bloodstream,boardinghouse,cartilaginous,centrifugal,chamberlain,charlemagne,clairvoyant,combinatorial,compensable,complaisant,conflagrate,conglomerate,conquistador,consumptive,convertible,cosmopolitan,counterflow,countryside,countrywide,declamatory,decomposable,decomposition,deliquescent,description,descriptive,dilogarithm,discernible,discriminate,disturbance,documentary,earthmoving,encephalitis,endothermic,epistemology,everlasting,exchangeable,exclamatory,exclusionary,exculpatory,explanatory,extemporaneous,extravaganza,filamentary,fluorescent,galvanometer,geophysical,glycerinate,groundskeep,herpetology,heterozygous,homebuilding,honeysuckle,hydrogenate,hyperboloid,impenetrable,imperceivable,imperishable,imponderable,impregnable,improvident,improvisation,incomparable,incompatible,incomputable,incredulity,indefatigable,indigestible,indisputable,inexhaustible,inextricable,inhospitable,inscrutable,jurisdiction,lawbreaking,leatherback,leatherneck,leavenworth,logarithmic,loudspeaking,maidservant,malnourished,marketplace,merchandise,methodology,misanthrope,mitochondria,molybdenite,nearsighted,obfuscatory,oceanography,palindromic,paradigmatic,paramagnetic,perfectible,phraseology,politicking,predicament,presidential,problematic,proclamation,promiscuity,providential,purchasable,pythagorean,quasiparticle,quicksilver,radiotelephone,sedimentary,selfadjoint,serendipity,sovereignty,subjunctive,superfluity,terminology,valedictorian,valedictory,verisimilitude,vigilantism,voluntarism}
{administrable,anthropology,blameworthy,bluestocking,boustrophedon,bricklaying,chemisorption,christendom,claustrophobia,compensatory,comprehensive,counterexample,demonstrable,disciplinary,discriminable,geochemistry,hypertensive,indecipherable,indecomposable,indiscoverable,lexicography,manslaughter,misanthropic,mockingbird,monkeyflower,neuropathology,paralinguistic,pharmacology,pitchblende,playwriting,shipbuilding,shortcoming,springfield,stenography,stockholder,switchblade,switchboard,switzerland,thunderclap}

{comprehensible}

Nim[edit]

import strformat, strutils, tables

const Vowels = {'a', 'e', 'i', 'o', 'u'}

template plural(n: int): string = (if n > 1: "s" else: "")

var results: array[0..9, seq[string]]

for word in "unixdict.txt".lines:
  if word.len <= 10: continue

  block checkWord:
    let letterCounts = word.toCountTable
    var consonantCount = 0
    for key, count in letterCounts.pairs:
      if key notin Vowels:
        if count > 1: break checkWord
        if count == 1: inc consonantCount
    results[consonantCount].add word

for n in countdown(9, 4):
  let count = results[n].len
  echo &"nFound {count} word{plural(count)} with {n} unique consonants:"
  for i, word in results[n]:
    stdout.write word.align(14), if (i + 1) mod 9 == 0: 'n' else: ' '
  echo()
Found 1 word with 9 unique consonants:
comprehensible 

Found 39 words with 8 unique consonants:
 administrable   anthropology    blameworthy   bluestocking  boustrophedon    bricklaying  chemisorption    christendom claustrophobia
  compensatory  comprehensive counterexample   demonstrable   disciplinary  discriminable   geochemistry   hypertensive indecipherable
indecomposable indiscoverable   lexicography   manslaughter   misanthropic    mockingbird   monkeyflower neuropathology paralinguistic
  pharmacology    pitchblende    playwriting   shipbuilding    shortcoming    springfield    stenography    stockholder    switchblade
   switchboard    switzerland    thunderclap 

Found 130 words with 7 unique consonants:
   acknowledge    algorithmic   alphanumeric   ambidextrous    amphibology    anchoritism    atmospheric  autobiography    bakersfield
   bartholomew  bidirectional    bloodstream  boardinghouse  cartilaginous    centrifugal    chamberlain    charlemagne    clairvoyant
 combinatorial    compensable    complaisant    conflagrate   conglomerate   conquistador    consumptive    convertible   cosmopolitan
   counterflow    countryside    countrywide    declamatory   decomposable  decomposition   deliquescent    description    descriptive
   dilogarithm    discernible   discriminate    disturbance    documentary    earthmoving   encephalitis    endothermic   epistemology
   everlasting   exchangeable    exclamatory   exclusionary    exculpatory    explanatory extemporaneous   extravaganza    filamentary
   fluorescent   galvanometer    geophysical    glycerinate    groundskeep    herpetology   heterozygous   homebuilding    honeysuckle
   hydrogenate    hyperboloid   impenetrable  imperceivable   imperishable   imponderable    impregnable    improvident  improvisation
  incomparable   incompatible   incomputable    incredulity  indefatigable   indigestible   indisputable  inexhaustible   inextricable
  inhospitable    inscrutable   jurisdiction    lawbreaking    leatherback    leatherneck    leavenworth    logarithmic   loudspeaking
   maidservant   malnourished    marketplace    merchandise    methodology    misanthrope   mitochondria    molybdenite    nearsighted
   obfuscatory   oceanography    palindromic   paradigmatic   paramagnetic    perfectible    phraseology    politicking    predicament
  presidential    problematic   proclamation    promiscuity   providential    purchasable    pythagorean  quasiparticle    quicksilver
radiotelephone    sedimentary    selfadjoint    serendipity    sovereignty    subjunctive    superfluity    terminology  valedictorian
   valedictory verisimilitude    vigilantism    voluntarism 

Found 152 words with 6 unique consonants:
   aboveground   advantageous    adventurous    aerodynamic    anglophobia    anisotropic    archipelago    automorphic    baltimorean
   beneficiary   borosilicate    cabinetmake    californium    codetermine    coextensive    comparative    compilation    composition
   confabulate    confederate    considerate    consolidate   counterpoise    countervail   decisionmake    declamation    declaration
   declarative    deemphasize    deformation    deliverance    demountable    denumerable    deoxyribose    depreciable    deprivation
   destabilize    diagnosable    diamagnetic    dichotomize    dichotomous   disambiguate    eigenvector    elizabethan    encapsulate
   enforceable    ephemerides   epidemiology   evolutionary    exceptional    exclamation    exercisable    exhaustible    exoskeleton
   expenditure   experiential    exploration    fluorescein   geometrician    hemosiderin    hereinbelow    hermeneutic   heterogamous
 heterogeneous   heterosexual    hexadecimal   hexafluoride    homebuilder    homogeneity    housebroken    icosahedral    icosahedron
   impersonate    imprecision    improvisate    inadvisable    increasable    incredulous    indivisible    indomitable   ineradicable
   inescapable    inestimable    inexcusable   infelicitous    informatica    informative    inseparable    insuperable    ionospheric
   justiciable   kaleidescope   kaleidoscope    legerdemain   liquefaction    loudspeaker    machinelike    magisterial    maladaptive
   mantlepiece    manufacture    masterpiece   meetinghouse    meteorology    minesweeper    ministerial   multifarious    musculature
   observation    patrimonial    peasanthood   pediatrician    persecution   pertinacious    picturesque    planetarium    pleistocene
   pomegranate    predominate    prejudicial    prohibition    prohibitive    prolegomena    prosecution    provisional    provocation
   publication  quasiperiodic    reclamation    religiosity   renegotiable    residential   rooseveltian    safekeeping   saloonkeeper
   serviceable    speedometer    subrogation    sulfonamide    superficial    superlative    teaspoonful    trapezoidal    tridiagonal
   troublesome   vainglorious    valediction    venturesome    vermiculite   vocabularian   warehouseman    wisenheimer 

Found 22 words with 5 unique consonants:
   acquisition    acquisitive    acrimonious    ceremonious    deleterious   diatomaceous    egalitarian    equilibrate    equilibrium
   equinoctial    expeditious    hereinabove    homogeneous    inequitable    injudicious    inoperative    inquisitive    interviewee
   leeuwenhoek   onomatopoeic    radioactive    requisition 

Found 3 words with 4 unique consonants:
   audiovisual    bourgeoisie   onomatopoeia 

Perl[edit]

#!/usr/bin/perl

use strict; # https://rosettacode.org/wiki/Find_words_which_contains_most_consonants
use warnings;

my @most;
@ARGV = 'unixdict.txt';
length > 11 and !/([^aeiou]).*1/ and $most[ tr/aeioun//c ] .= $_ while <>;
$most[$_] and printf "%d Unique consonants, word count: %dnn%snn",
  $_, $most[ $_ ] =~ tr/n//, $most[ $_ ] =~ tr/n/ /r =~ s/.{66}K /n/gr
  for reverse 0 .. $#most;
9 Unique consonants, word count: 1

comprehensible 

8 Unique consonants, word count: 39

administrable anthropology blameworthy bluestocking boustrophedon bricklaying
chemisorption christendom claustrophobia compensatory comprehensive
counterexample demonstrable disciplinary discriminable geochemistry
hypertensive indecipherable indecomposable indiscoverable lexicography
manslaughter misanthropic mockingbird monkeyflower neuropathology paralinguistic
pharmacology pitchblende playwriting shipbuilding shortcoming springfield
stenography stockholder switchblade switchboard switzerland thunderclap


7 Unique consonants, word count: 130

acknowledge algorithmic alphanumeric ambidextrous amphibology anchoritism
atmospheric autobiography bakersfield bartholomew bidirectional bloodstream
boardinghouse cartilaginous centrifugal chamberlain charlemagne clairvoyant
combinatorial compensable complaisant conflagrate conglomerate conquistador
consumptive convertible cosmopolitan counterflow countryside countrywide
declamatory decomposable decomposition deliquescent description descriptive
dilogarithm discernible discriminate disturbance documentary earthmoving
encephalitis endothermic epistemology everlasting exchangeable exclamatory
exclusionary exculpatory explanatory extemporaneous extravaganza filamentary
fluorescent galvanometer geophysical glycerinate groundskeep herpetology
heterozygous homebuilding honeysuckle hydrogenate hyperboloid impenetrable
imperceivable imperishable imponderable impregnable improvident improvisation
incomparable incompatible incomputable incredulity indefatigable indigestible
indisputable inexhaustible inextricable inhospitable inscrutable jurisdiction
lawbreaking leatherback leatherneck leavenworth logarithmic loudspeaking
maidservant malnourished marketplace merchandise methodology misanthrope
mitochondria molybdenite nearsighted obfuscatory oceanography palindromic
paradigmatic paramagnetic perfectible phraseology politicking predicament
presidential problematic proclamation promiscuity providential purchasable
pythagorean quasiparticle quicksilver radiotelephone sedimentary selfadjoint
serendipity sovereignty subjunctive superfluity terminology valedictorian
valedictory verisimilitude vigilantism voluntarism 

6 Unique consonants, word count: 152

aboveground advantageous adventurous aerodynamic anglophobia anisotropic
archipelago automorphic baltimorean beneficiary borosilicate cabinetmake
californium codetermine coextensive comparative compilation composition
confabulate confederate considerate consolidate counterpoise countervail
decisionmake declamation declaration declarative deemphasize deformation
deliverance demountable denumerable deoxyribose depreciable deprivation
destabilize diagnosable diamagnetic dichotomize dichotomous disambiguate
eigenvector elizabethan encapsulate enforceable ephemerides epidemiology
evolutionary exceptional exclamation exercisable exhaustible exoskeleton
expenditure experiential exploration fluorescein geometrician hemosiderin
hereinbelow hermeneutic heterogamous heterogeneous heterosexual hexadecimal
hexafluoride homebuilder homogeneity housebroken icosahedral icosahedron
impersonate imprecision improvisate inadvisable increasable incredulous
indivisible indomitable ineradicable inescapable inestimable inexcusable
infelicitous informatica informative inseparable insuperable ionospheric
justiciable kaleidescope kaleidoscope legerdemain liquefaction loudspeaker
machinelike magisterial maladaptive mantlepiece manufacture masterpiece
meetinghouse meteorology minesweeper ministerial multifarious musculature
observation patrimonial peasanthood pediatrician persecution pertinacious
picturesque planetarium pleistocene pomegranate predominate prejudicial
prohibition prohibitive prolegomena prosecution provisional provocation
publication quasiperiodic reclamation religiosity renegotiable residential
rooseveltian safekeeping saloonkeeper serviceable speedometer subrogation
sulfonamide superficial superlative teaspoonful trapezoidal tridiagonal
troublesome vainglorious valediction venturesome vermiculite vocabularian
warehouseman wisenheimer 

5 Unique consonants, word count: 22

acquisition acquisitive acrimonious ceremonious deleterious diatomaceous
egalitarian equilibrate equilibrium equinoctial expeditious hereinabove
homogeneous inequitable injudicious inoperative inquisitive interviewee
leeuwenhoek onomatopoeic radioactive requisition 

4 Unique consonants, word count: 3

audiovisual bourgeoisie onomatopoeia

Phix[edit]

with javascript_semantics
function consonant(integer ch) return find(ch,"aeiou")=0 end function
function singlec(string consonants) return length(unique(consonants))=length(consonants) end function
function over10sc(string word) return length(word)>10 and singlec(filter(word,consonant)) end function
function mostc(string word) return {length(filter(word,consonant)),word} end function
sequence res = sort_columns(apply(filter(unix_dict(),over10sc),mostc),{-1,2})
printf(1,"%d most consonant words: %vn",{length(res),shorten(res,"",2)})

It does not escape me that the use of lambda expressions would make this slightly easier to write but much harder to comprehend…
Admittedly adding a dozen or so line breaks to the above might (actually) improve matters, but I’m sure you’ll cope somehow.

347 most consonant words: {{9,"comprehensible"},{8,"administrable"},"...",{4,"bourgeoisie"},{4,"onomatopoeia"}}

Python[edit]

«Use Python,» they say, «it’s comprehensible,» they say.

print('n'.join((f'{x[0]}: {" ".join(sorted(x[1]))}' if len(x[1]) < 30 else f'{x[0]}: {len(x[1])} words' for x in
      (x for x in ((n, [x[1] for x in l if x[0] == n]) for n in range(maxlen, -1, -1)) if x[1]))) if (maxlen := max(l := [(len(c), w)
      for w in [l for l in [l.rstrip() for l in open('unixdict.txt')] if len(l) > 10 and all(c >= 'a' and c <= 'z' for c in l)]
      if sorted(c := w.replace('a', '').replace('e', '').replace('i', '').replace('o', '').replace('u', '')) == sorted(set(c))])[0]) else None)
9: comprehensible
8: 39 words
7: 130 words
6: 152 words
5: acquisition acquisitive ...<snip>... onomatopoeic radioactive requisition
4: audiovisual bourgeoisie onomatopoeia

The above is roughly equivalent to the following:

import re
from collections import defaultdict

with open('unixdict.txt') as f:
    lines = [l.rstrip() for l in f] # all lines of text without newline

# keep only lines that's long enough and has no non-letters
words = [w for w in lines if len(w) > 10 and not re.match(r'[^a-z]', w)]

good = defaultdict(list)
for word in words:
    # take all consonants in word
    c = re.sub(r'[aeiou]', '', word)

    # check if there are duplicates
    if sorted(c) == sorted(set(c)):
        good[len(c)].append(word)

for k, v in sorted(good.items(), reverse=True):
    if len(v) > 30:
        print(f'{k}: {len(v)} words')
    else:
        print(f'{k}:', ' '.join(sorted(v)))

Or, aiming for some degree of legibility, and showing results for two of the possible interpretations of an ambiguous task description:

'''Words using largest sets of consonants'''

from itertools import groupby
from os.path import expanduser
from string import ascii_letters


# uniqueGlyphCounts :: Set Char -> [String] -> [[(String, Int)]]
def uniqueGlyphCounts(glyphs):
    '''The words in a given list ordered and grouped by,
       the descending number of unique consonants which
       they contain, each word tupled with that number.
    '''
    def go(ws):
        return [
            list(snd(ab)) for ab in groupby(
                sorted(
                    [
                        (
                            w,
                            len(set(w).intersection(glyphs))
                        )
                        for w in ws
                    ],
                    key=snd,
                    reverse=True
                ),
                key=snd
            )
        ]

    return go


# noGlyphRepeated :: Set Char -> (String, Int) -> Bool
def noGlyphRepeated(glyphs):
    '''True if the string in a given (String, Int)
       tuple contains no multiple uses of any of
       the given set of glyphs.
    '''
    def go(sn):
        s, n = sn
        return n == len([c for c in s if c in glyphs])

    return go


# ------------------------- TEST -------------------------
# main :: IO ()
def main():
    '''Words drawn from a given list which use the largest
       set of consonants, and contain no repeated consonants.
    '''

    consonants = set(ascii_letters).difference(
        set("AEIOUaeiou")
    )

    largestConsonantSet = uniqueGlyphCounts(consonants)(
        readFile("unixdict.txt").splitlines()
    )[0]

    noConsonantsReused = noGlyphRepeated(consonants)

    print("Words using largest sets of unique consonants:")
    for x in largestConsonantSet:
        print(x)

    print("nExcluding words which reuse any consonants:")
    for sn in largestConsonantSet:
        if noConsonantsReused(sn):
            print(sn)


# ----------------------- GENERIC ------------------------

# readFile :: FilePath -> IO String
def readFile(fp):
    '''The contents of any file at the path
       derived by expanding any ~ in fp.
    '''
    with open(expanduser(fp), 'r', encoding='utf-8') as f:
        return f.read()


# snd :: (a, b) -> b
def snd(tpl):
    '''Second member of a pair.'''
    return tpl[1]


# MAIN ---
if __name__ == '__main__':
    main()
Words using largest sets of unique consonants:
('bremsstrahlung', 9)
('comprehensible', 9)
('crystallographer', 9)
('crystallography', 9)
('electroencephalogram', 9)
('electroencephalography', 9)
('handicraftsman', 9)
('handicraftsmen', 9)
('immunoelectrophoresis', 9)
('incomprehensible', 9)
('knightsbridge', 9)

Excluding words which reuse any consonants:
('comprehensible', 9)

Using generator functions[edit]

"""Find words which contain the most consonants. Requires Python >= 3.7."""
import fileinput
import textwrap

from itertools import groupby
from operator import itemgetter

from typing import Iterable
from typing import List
from typing import Tuple


VOWELS = frozenset("aeiou")


def read_words(path: str, encoding="utf-8") -> Iterable[str]:
    for line in fileinput.input(path, encoding=encoding):
        yield line.strip().lower()


def filter_words(words: Iterable[str]) -> Iterable[Tuple[str, int]]:
    for word in words:
        if len(word) <= 10:
            continue

        consonants = [c for c in word if c not in VOWELS]
        if len(consonants) != len(set(consonants)):
            continue

        yield word, len(consonants)


def group_words(words: Iterable[Tuple[str, int]]) -> Iterable[Tuple[int, List[str]]]:
    for count, group in groupby(
        sorted(words, key=itemgetter(1), reverse=True),
        key=itemgetter(1),
    ):
        yield count, [word for word, _ in group]


def main() -> None:
    all_words = read_words("unixdict.txt")
    words = filter_words(all_words)

    for count, word_group in group_words(words):
        pretty_words = "n".join(
            textwrap.wrap(" ".join(word_group)),
        )
        plural = "s" if count > 1 else ""
        print(
            f"Found {len(word_group)} word{plural} "
            f"with {count} unique consonants:n{pretty_words}n"
        )


if __name__ == "__main__":
    main()
Found 1 word with 9 unique consonants:
comprehensible

Found 39 words with 8 unique consonants:
administrable anthropology blameworthy bluestocking boustrophedon
bricklaying chemisorption christendom claustrophobia compensatory
comprehensive counterexample demonstrable disciplinary discriminable
geochemistry hypertensive indecipherable indecomposable indiscoverable
lexicography manslaughter misanthropic mockingbird monkeyflower
neuropathology paralinguistic pharmacology pitchblende playwriting
shipbuilding shortcoming springfield stenography stockholder
switchblade switchboard switzerland thunderclap

Found 130 words with 7 unique consonants:
acknowledge algorithmic alphanumeric ambidextrous amphibology
anchoritism atmospheric autobiography bakersfield bartholomew
bidirectional bloodstream boardinghouse cartilaginous centrifugal
chamberlain charlemagne clairvoyant combinatorial compensable
complaisant conflagrate conglomerate conquistador consumptive
convertible cosmopolitan counterflow countryside countrywide
declamatory decomposable decomposition deliquescent description
descriptive dilogarithm discernible discriminate disturbance
documentary earthmoving encephalitis endothermic epistemology
everlasting exchangeable exclamatory exclusionary exculpatory
explanatory extemporaneous extravaganza filamentary fluorescent
galvanometer geophysical glycerinate groundskeep herpetology
heterozygous homebuilding honeysuckle hydrogenate hyperboloid
impenetrable imperceivable imperishable imponderable impregnable
improvident improvisation incomparable incompatible incomputable
incredulity indefatigable indigestible indisputable inexhaustible
inextricable inhospitable inscrutable jurisdiction lawbreaking
leatherback leatherneck leavenworth logarithmic loudspeaking
maidservant malnourished marketplace merchandise methodology
misanthrope mitochondria molybdenite nearsighted obfuscatory
oceanography palindromic paradigmatic paramagnetic perfectible
phraseology politicking predicament presidential problematic
proclamation promiscuity providential purchasable pythagorean
quasiparticle quicksilver radiotelephone sedimentary selfadjoint
serendipity sovereignty subjunctive superfluity terminology
valedictorian valedictory verisimilitude vigilantism voluntarism

Found 152 words with 6 unique consonants:
aboveground advantageous adventurous aerodynamic anglophobia
anisotropic archipelago automorphic baltimorean beneficiary
borosilicate cabinetmake californium codetermine coextensive
comparative compilation composition confabulate confederate
considerate consolidate counterpoise countervail decisionmake
declamation declaration declarative deemphasize deformation
deliverance demountable denumerable deoxyribose depreciable
deprivation destabilize diagnosable diamagnetic dichotomize
dichotomous disambiguate eigenvector elizabethan encapsulate
enforceable ephemerides epidemiology evolutionary exceptional
exclamation exercisable exhaustible exoskeleton expenditure
experiential exploration fluorescein geometrician hemosiderin
hereinbelow hermeneutic heterogamous heterogeneous heterosexual
hexadecimal hexafluoride homebuilder homogeneity housebroken
icosahedral icosahedron impersonate imprecision improvisate
inadvisable increasable incredulous indivisible indomitable
ineradicable inescapable inestimable inexcusable infelicitous
informatica informative inseparable insuperable ionospheric
justiciable kaleidescope kaleidoscope legerdemain liquefaction
loudspeaker machinelike magisterial maladaptive mantlepiece
manufacture masterpiece meetinghouse meteorology minesweeper
ministerial multifarious musculature observation patrimonial
peasanthood pediatrician persecution pertinacious picturesque
planetarium pleistocene pomegranate predominate prejudicial
prohibition prohibitive prolegomena prosecution provisional
provocation publication quasiperiodic reclamation religiosity
renegotiable residential rooseveltian safekeeping saloonkeeper
serviceable speedometer subrogation sulfonamide superficial
superlative teaspoonful trapezoidal tridiagonal troublesome
vainglorious valediction venturesome vermiculite vocabularian
warehouseman wisenheimer

Found 22 words with 5 unique consonants:
acquisition acquisitive acrimonious ceremonious deleterious
diatomaceous egalitarian equilibrate equilibrium equinoctial
expeditious hereinabove homogeneous inequitable injudicious
inoperative inquisitive interviewee leeuwenhoek onomatopoeic
radioactive requisition

Found 3 words with 4 unique consonants:
audiovisual bourgeoisie onomatopoeia

R[edit]

Far and away the hardest part of this task is filtering down the dict until it only contains words with no repeated consonants. If we only had to find the word with the most consonants, this would be easy.

dict <- scan("https://web.archive.org/web/20180611003215/http://www.puzzlers.org/pub/wordlists/unixdict.txt", what = character())
dictBig <- dict[nchar(dict) > 10]
consonants <- letters[!letters %in% c("a", "e", "i", "o", "u")]
#The following line is equivalent to sapply(consonants, function(x) stringr::str_count(dictBig, x))
#As with all things with strings in R, life is easier with stringr or stringi.
consonantCount <- sapply(consonants, function(x) lengths(regmatches(dictBig, gregexec(x, dictBig))))
wordsWithNoRepeatedConsts <- dictBig[apply(consonantCount, MARGIN = 1, function(x) all(x <= 1))]
uniqueConstCount <- rowSums(sapply(consonants, function(x) grepl(x, wordsWithNoRepeatedConsts)))
biggestWords <- function(offset) wordsWithNoRepeatedConsts[which(uniqueConstCount == max(uniqueConstCount) - offset)]
cat("Biggest:", paste(biggestWords(0), collapse = ", "),
    "n n Second biggest:", paste(biggestWords(1), collapse = ", "),
    "n n Third biggest:", paste(biggestWords(2), collapse = ", "))
Read 25104 items
Biggest: comprehensible 
 
 Second biggest: administrable, anthropology, blameworthy, bluestocking, boustrophedon, bricklaying, chemisorption, christendom, claustrophobia, compensatory, comprehensive, counterexample, demonstrable, disciplinary, discriminable, geochemistry, hypertensive, indecipherable, indecomposable, indiscoverable, lexicography, manslaughter, misanthropic, mockingbird, monkeyflower, neuropathology, paralinguistic, pharmacology, pitchblende, playwriting, shipbuilding, shortcoming, springfield, stenography, stockholder, switchblade, switchboard, switzerland, thunderclap 
 
 Third biggest: acknowledge, algorithmic, alphanumeric, ambidextrous, amphibology, anchoritism, atmospheric, autobiography, bakersfield, bartholomew, bidirectional, bloodstream, boardinghouse, cartilaginous, centrifugal, chamberlain, charlemagne, clairvoyant, combinatorial, compensable, complaisant, conflagrate, conglomerate, conquistador, consumptive, convertible, cosmopolitan, counterflow, countryside, countrywide, declamatory, decomposable, decomposition, deliquescent, description, descriptive, dilogarithm, discernible, discriminate, disturbance, documentary, earthmoving, encephalitis, endothermic, epistemology, everlasting, exchangeable, exclamatory, exclusionary, exculpatory, explanatory, extemporaneous, extravaganza, filamentary, fluorescent, galvanometer, geophysical, glycerinate, groundskeep, herpetology, heterozygous, homebuilding, honeysuckle, hydrogenate, hyperboloid, impenetrable, imperceivable, imperishable, imponderable, impregnable, improvident, improvisation, incomparable, incompatible, incomputable, incredulity, indefatigable, indigestible, indisputable, inexhaustible, inextricable, inhospitable, inscrutable, jurisdiction, lawbreaking, leatherback, leatherneck, leavenworth, logarithmic, loudspeaking, maidservant, malnourished, marketplace, merchandise, methodology, misanthrope, mitochondria, molybdenite, nearsighted, obfuscatory, oceanography, palindromic, paradigmatic, paramagnetic, perfectible, phraseology, politicking, predicament, presidential, problematic, proclamation, promiscuity, providential, purchasable, pythagorean, quasiparticle, quicksilver, radiotelephone, sedimentary, selfadjoint, serendipity, sovereignty, subjunctive, superfluity, terminology, valedictorian, valedictory, verisimilitude, vigilantism, voluntarism

Racket[edit]

#lang racket

(define (consonant-count s)
  (set-count (set-subtract (list->set (string->list s))
                           (set #a #e #i #o #u))))

(define words-by-consonant-count
  (group-by consonant-count (file->lines "../../data/unixdict.txt")))

(module+ main
  (define group-count (compose consonant-count first))
  (define group-with-max-consonant-count
    (argmax group-count words-by-consonant-count))
  (displayln "Group with gratest consonant count:")
  group-with-max-consonant-count
  (printf "with: ~a consonants in each word"
          (group-count group-with-max-consonant-count)))
Group with gratest consonant count:
'("bremsstrahlung" "comprehensible" "crystallographer" "crystallography" "electroencephalogram" "electroencephalography" "handicraftsman" "handicraftsmen" "immunoelectrophoresis" "incomprehensible" "knightsbridge")
with: 9 consonants in each word

Raku[edit]

Hmm. Depends on how you define «most».

unit sub MAIN ($min = 11);
my @vowel = <a e i o u>;
my $vowel = rx/ @vowel /;
my @consonant = ('a'..'z').grep: { $_@vowel };
my $consonant = rx/ @consonant /;

say "Minimum characters in a word: $min";

say "Number found, consonant count and list of words with the largest absolute number of unique, unrepeated consonants:";
say +.value, ' @ ', $_ for 'unixdict.txt'.IO.words.grep( {.chars >= $min and so all(.comb.Bag{@consonant}) <= 1} )
    .classify( { +.comb(/$consonant/) } ).sort(-*.key).head(2);

say "nNumber found, ratio and list of words with the highest ratio of unique, unrepeated consonants to vowels:";
say +.value, ' @ ', $_  for 'unixdict.txt'.IO.slurp.words.grep( {.chars >= $min and so all(.comb.Bag{@consonant}) <= 1} )
    .classify( { +.comb(/$vowel/) ?? (+.comb(/$consonant/) / +.comb(/$vowel/) ) !! Inf } ).sort(-*.key).head(3);
Minimum characters in a word: 11
Number found, consonant count and list of words with the largest absolute number of unique, unrepeated consonants:
1 @ 9 => [comprehensible]
39 @ 8 => [administrable anthropology blameworthy bluestocking boustrophedon bricklaying chemisorption christendom claustrophobia compensatory comprehensive counterexample demonstrable disciplinary discriminable geochemistry hypertensive indecipherable indecomposable indiscoverable lexicography manslaughter misanthropic mockingbird monkeyflower neuropathology paralinguistic pharmacology pitchblende playwriting shipbuilding shortcoming springfield stenography stockholder switchblade switchboard switzerland thunderclap]

Number found, ratio and list of words with the highest ratio of unique, unrepeated consonants to vowels:
14 @ 2.666667 => [blameworthy bricklaying christendom mockingbird pitchblende playwriting shortcoming springfield stenography stockholder switchblade switchboard switzerland thunderclap]
13 @ 2 => [anthropology bluestocking compensatory demonstrable disciplinary geochemistry hypertensive lexicography manslaughter misanthropic monkeyflower pharmacology shipbuilding]
1 @ 1.8 => [comprehensible]

Character count of 11 minimum is rather arbitrary. If we feed it a character count minimum of 5, the first one returns a pretty similar answer, 8 additional words at 8 consonants (all with 10 characters.)

The second would actually come up with some infinite ratios (since we somewhat bogusly don’t count ‘y’ as a vowel.):

Minimum characters in a word: 5
Number found, consonant count and list of words with the largest absolute number of unique, unrepeated consonants:
1 @ 9 => [comprehensible]
47 @ 8 => [administrable anthropology bankruptcy blacksmith blameworthy bluestocking boustrophedon bricklaying chemisorption christendom claustrophobia compensatory comprehensive counterexample crankshaft demonstrable disciplinary discriminable geochemistry hypertensive indecipherable indecomposable indiscoverable lexicography lynchburg manslaughter misanthropic mockingbird monkeyflower neuropathology paralinguistic pharmacology pitchblende playwright playwriting shipbuilding shortcoming sprightly springfield stenography stockholder strickland stronghold switchblade switchboard switzerland thunderclap]

Number found, ratio and list of words with the highest ratio of unique, unrepeated consonants to vowels:
6 @ Inf => [crypt glyph lymph lynch nymph psych]
2 @ 8 => [lynchburg sprightly]
5 @ 7 => [klystron mcknight schwartz skylight splotchy]

REXX[edit]

This REXX version doesn’t care what order the words in the dictionary are in,   nor does it care what

case  (lower/upper/mixed)  the words are in,   the search for the words is   caseless.

It also allows the minimum length to be specified on the command line (CL) as well as the dictionary file identifier.

/*REXX pgm finds words  (within an identified dict.)  which contain the most consonants.*/
parse arg minl iFID .                            /*obtain optional arguments from the CL*/
if minl=='' | minl=="," then minl= 11            /*Not specified?  Then use the default.*/
if iFID=='' | iFID=="," then iFID='unixdict.txt' /* "      "         "   "   "     "    */

           do #=1  while lines(iFID)==0         /*read each word in the file  (word=X).*/
           x= strip( linein( iFID) )             /*pick off a word from the input line. */
           @.#= x                                /*save:  the original case of the word.*/
           end   /*#*/
#= # - 1                                         /*adjust word count because of DO loop.*/
say copies('─', 30)      #       "words in the dictionary file: "       iFID
xyz= 'bcdfghjklmnpqrstvwxyz';        upper xyz   /*list of the 21 uppercase consonants. */
L= length(xyz)                                   /*number of consonants in the alphabet.*/
maxCnt= 0                                        /*max # unique consonants in a max set.*/
!.=;                                 !!.= 0      /* "  "    "        "      " " word.   */
      do j=1  for #;     $= @.j;     upper $     /*obtain an uppercased word from dict. */
      if length($)<minl         then iterate     /*Is word long enough?   No, then skip.*/
      cnt= 0                                     /*the number of consonants  (so far).  */

         do k=1  for L;  q= substr(xyz, K, 1)    /*examine all consonants for uniqueness*/
         _= pos(q, $)
         if _==0                then iterate     /*Is this consonant present?  No, skip.*/
         if pos(q, $, _ + 1)>0  then iterate j   /*More than 1 same consonant? Then skip*/
         cnt= cnt + 1                            /*bump the number of consonants so far.*/
         end      /*k*/

      !.cnt= !.cnt  @.j                          /*append a word to a specific len list.*/
      !!.cnt= cnt                                /*keep track of # of unique consonants.*/
      maxCnt= max(maxCNT, cnt)                   /*save the maximum count  (so far).    */
      end         /*j*/
                                                 /*show sets of words, unique consonants*/
      do m=maxCnt  to 1  by -1;  n= words(!.m)   /*get the number of words in this set. */
      if n==0  then iterate                      /*Any word in this set?  No, then skip.*/
                                 say;  say       /*show some blank lines between sets.  */
         do y=1  for n                           /*show individual words in the set.    */
         say right(y, L#)':'     right( left( word(!.m, y), 30),  40)    /*indent words.*/
         end   /*y*/

      say copies('─', 30)    n    " word"s(n)   'found which have '   !!.m   " unique" ,
                                  "consonants and having a minimum word length of: "  minl
      end   /*m*/
exit 0                                           /*stick a fork in it,  we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
s:   if arg(1)==1  then return arg(3);   return word( arg(2) 's',  1)
output   when using the default inputs:

(Shown at three-quarter size.)

────────────────────────────── 25104 words in the dictionary file:  unixdict.txt


    1:           comprehensible
────────────────────────────── 1  word found which have  9  unique consonants and having a minimum word length of:  11


    1:           administrable
    2:           anthropology
    3:           blameworthy
    4:           bluestocking
    5:           boustrophedon
    6:           bricklaying
    7:           chemisorption
    8:           christendom
    9:           claustrophobia
   10:           compensatory
   11:           comprehensive
   12:           counterexample
   13:           demonstrable
   14:           disciplinary
   15:           discriminable
   16:           geochemistry
   17:           hypertensive
   18:           indecipherable
   19:           indecomposable
   20:           indiscoverable
   21:           lexicography
   22:           manslaughter
   23:           misanthropic
   24:           mockingbird
   25:           monkeyflower
   26:           neuropathology
   27:           paralinguistic
   28:           pharmacology
   29:           pitchblende
   30:           playwriting
   31:           shipbuilding
   32:           shortcoming
   33:           springfield
   34:           stenography
   35:           stockholder
   36:           switchblade
   37:           switchboard
   38:           switzerland
   39:           thunderclap
────────────────────────────── 39  words found which have  8  unique consonants and having a minimum word length of:  11


    1:           acknowledge
    2:           algorithmic
    3:           alphanumeric
    4:           ambidextrous
    5:           amphibology
    6:           anchoritism
    7:           atmospheric
    8:           autobiography
    9:           bakersfield
   10:           bartholomew
   11:           bidirectional
   12:           bloodstream
   13:           boardinghouse
   14:           cartilaginous
   15:           centrifugal
   16:           chamberlain
   17:           charlemagne
   18:           clairvoyant
   19:           combinatorial
   20:           compensable
   21:           complaisant
   22:           conflagrate
   23:           conglomerate
   24:           conquistador
   25:           consumptive
   26:           convertible
   27:           cosmopolitan
   28:           counterflow
   29:           countryside
   30:           countrywide
   31:           declamatory
   32:           decomposable
   33:           decomposition
   34:           deliquescent
   35:           description
   36:           descriptive
   37:           dilogarithm
   38:           discernible
   39:           discriminate
   40:           disturbance
   41:           documentary
   42:           earthmoving
   43:           encephalitis
   44:           endothermic
   45:           epistemology
   46:           everlasting
   47:           exchangeable
   48:           exclamatory
   49:           exclusionary
   50:           exculpatory
   51:           explanatory
   52:           extemporaneous
   53:           extravaganza
   54:           filamentary
   55:           fluorescent
   56:           galvanometer
   57:           geophysical
   58:           glycerinate
   59:           groundskeep
   60:           herpetology
   61:           heterozygous
   62:           homebuilding
   63:           honeysuckle
   64:           hydrogenate
   65:           hyperboloid
   66:           impenetrable
   67:           imperceivable
   68:           imperishable
   69:           imponderable
   70:           impregnable
   71:           improvident
   72:           improvisation
   73:           incomparable
   74:           incompatible
   75:           incomputable
   76:           incredulity
   77:           indefatigable
   78:           indigestible
   79:           indisputable
   80:           inexhaustible
   81:           inextricable
   82:           inhospitable
   83:           inscrutable
   84:           jurisdiction
   85:           lawbreaking
   86:           leatherback
   87:           leatherneck
   88:           leavenworth
   89:           logarithmic
   90:           loudspeaking
   91:           maidservant
   92:           malnourished
   93:           marketplace
   94:           merchandise
   95:           methodology
   96:           misanthrope
   97:           mitochondria
   98:           molybdenite
   99:           nearsighted
  100:           obfuscatory
  101:           oceanography
  102:           palindromic
  103:           paradigmatic
  104:           paramagnetic
  105:           perfectible
  106:           phraseology
  107:           politicking
  108:           predicament
  109:           presidential
  110:           problematic
  111:           proclamation
  112:           promiscuity
  113:           providential
  114:           purchasable
  115:           pythagorean
  116:           quasiparticle
  117:           quicksilver
  118:           radiotelephone
  119:           sedimentary
  120:           selfadjoint
  121:           serendipity
  122:           sovereignty
  123:           subjunctive
  124:           superfluity
  125:           terminology
  126:           valedictorian
  127:           valedictory
  128:           verisimilitude
  129:           vigilantism
  130:           voluntarism
────────────────────────────── 130  words found which have  7  unique consonants and having a minimum word length of:  11


    1:           aboveground
    2:           advantageous
    3:           adventurous
    4:           aerodynamic
    5:           anglophobia
    6:           anisotropic
    7:           archipelago
    8:           automorphic
    9:           baltimorean
   10:           beneficiary
   11:           borosilicate
   12:           cabinetmake
   13:           californium
   14:           codetermine
   15:           coextensive
   16:           comparative
   17:           compilation
   18:           composition
   19:           confabulate
   20:           confederate
   21:           considerate
   22:           consolidate
   23:           counterpoise
   24:           countervail
   25:           decisionmake
   26:           declamation
   27:           declaration
   28:           declarative
   29:           deemphasize
   30:           deformation
   31:           deliverance
   32:           demountable
   33:           denumerable
   34:           deoxyribose
   35:           depreciable
   36:           deprivation
   37:           destabilize
   38:           diagnosable
   39:           diamagnetic
   40:           dichotomize
   41:           dichotomous
   42:           disambiguate
   43:           eigenvector
   44:           elizabethan
   45:           encapsulate
   46:           enforceable
   47:           ephemerides
   48:           epidemiology
   49:           evolutionary
   50:           exceptional
   51:           exclamation
   52:           exercisable
   53:           exhaustible
   54:           exoskeleton
   55:           expenditure
   56:           experiential
   57:           exploration
   58:           fluorescein
   59:           geometrician
   60:           hemosiderin
   61:           hereinbelow
   62:           hermeneutic
   63:           heterogamous
   64:           heterogeneous
   65:           heterosexual
   66:           hexadecimal
   67:           hexafluoride
   68:           homebuilder
   69:           homogeneity
   70:           housebroken
   71:           icosahedral
   72:           icosahedron
   73:           impersonate
   74:           imprecision
   75:           improvisate
   76:           inadvisable
   77:           increasable
   78:           incredulous
   79:           indivisible
   80:           indomitable
   81:           ineradicable
   82:           inescapable
   83:           inestimable
   84:           inexcusable
   85:           infelicitous
   86:           informatica
   87:           informative
   88:           inseparable
   89:           insuperable
   90:           ionospheric
   91:           justiciable
   92:           kaleidescope
   93:           kaleidoscope
   94:           legerdemain
   95:           liquefaction
   96:           loudspeaker
   97:           machinelike
   98:           magisterial
   99:           maladaptive
  100:           mantlepiece
  101:           manufacture
  102:           masterpiece
  103:           meetinghouse
  104:           meteorology
  105:           minesweeper
  106:           ministerial
  107:           multifarious
  108:           musculature
  109:           observation
  110:           patrimonial
  111:           peasanthood
  112:           pediatrician
  113:           persecution
  114:           pertinacious
  115:           picturesque
  116:           planetarium
  117:           pleistocene
  118:           pomegranate
  119:           predominate
  120:           prejudicial
  121:           prohibition
  122:           prohibitive
  123:           prolegomena
  124:           prosecution
  125:           provisional
  126:           provocation
  127:           publication
  128:           quasiperiodic
  129:           reclamation
  130:           religiosity
  131:           renegotiable
  132:           residential
  133:           rooseveltian
  134:           safekeeping
  135:           saloonkeeper
  136:           serviceable
  137:           speedometer
  138:           subrogation
  139:           sulfonamide
  140:           superficial
  141:           superlative
  142:           teaspoonful
  143:           trapezoidal
  144:           tridiagonal
  145:           troublesome
  146:           vainglorious
  147:           valediction
  148:           venturesome
  149:           vermiculite
  150:           vocabularian
  151:           warehouseman
  152:           wisenheimer
────────────────────────────── 152  words found which have  6  unique consonants and having a minimum word length of:  11


    1:           acquisition
    2:           acquisitive
    3:           acrimonious
    4:           ceremonious
    5:           deleterious
    6:           diatomaceous
    7:           egalitarian
    8:           equilibrate
    9:           equilibrium
   10:           equinoctial
   11:           expeditious
   12:           hereinabove
   13:           homogeneous
   14:           inequitable
   15:           injudicious
   16:           inoperative
   17:           inquisitive
   18:           interviewee
   19:           leeuwenhoek
   20:           onomatopoeic
   21:           radioactive
   22:           requisition
────────────────────────────── 22  words found which have  5  unique consonants and having a minimum word length of:  11


    1:           audiovisual
    2:           bourgeoisie
    3:           onomatopoeia
────────────────────────────── 3  words found which have  4  unique consonants and having a minimum word length of:  11

Ring[edit]

load "stdlib.ring"

cStr = read("unixdict.txt")
wordList = str2list(cStr)
consonants = []
result = []
num = 0

see "working..." + nl

ln = len(wordList)
for n = ln to 1 step -1
    if len(wordList[n]) < 11
       del(wordList,n)
    ok
next

for n = 1 to len(wordList)
    flag = 1
    numcon = 0
    str = wordList[n]
    for m = 1 to len(str) - 1
        for p = m+1 to len(str)
            if not isvowel(str[m]) and (str[m] = str[p])
               flag = 0
               exit 2
            ok
        next
    next 
    if flag = 1
       add(consonants,wordList[n])
    ok
next

for n = 1 to len(consonants)
    con = 0
    str = consonants[n]
    for m = 1 to len(str)
        if not isvowel(str[m])
           con = con + 1
        ok
    next
    add(result,[consonants[n],con])
next

result = sortsecond(result)
result = reverse(result)

for n = 1 to len(result)
    see "" + n + ". " + result[n][1] + " " + result[n][2] + nl
next

see "done..." + nl

func sortsecond(alist)
     aList = sort(alist,2)
     for n=1 to len(alist)-1
         for m=n to len(aList)-1 
             if alist[m+1][2] = alist[m][2] and strcmp(alist[m+1][1],alist[m][1]) > 0
                temp = alist[m+1]
                alist[m+1] = alist[m]
                alist[m] = temp
             ok
         next
     next
     return aList
working...

1. comprehensible 9

2. administrable 8
3. anthropology 8
4. blameworthy 8
5. bluestocking 8
6. boustrophedon 8
7. bricklaying 8
8. chemisorption 8
9. christendom 8
10. claustrophobia 8
...
50. bartholomew 7
51. bidirectional 7
52. bloodstream 7
53. boardinghouse 7
54. cartilaginous 7
55. centrifugal 7
56. chamberlain 7
57. charlemagne 7
58. clairvoyant 7
59. combinatorial 7
60. compensable 7
...
180. beneficiary 6
181. borosilicate 6
182. cabinetmake 6
183. californium 6
184. codetermine 6
185. coextensive 6
186. comparative 6
187. compilation 6
188. composition 6
189. confabulate 6
190. confederate 6
...
330. equilibrate 5
331. equilibrium 5
332. equinoctial 5
333. expeditious 5
334. hereinabove 5
335. interviewee 5
336. leeuwenhoek 5
337. homogeneous 5
338. inequitable 5
339. injudicious 5
340. onomatopoeic 5
...
345. audiovisual 4
346. bourgeoisie 4
347. onomatopoeia 4

done...

Ruby[edit]

filtered = File.open("unixdict.txt").each( chomp: true).select do |word|
  next unless word.size > 10 
  cons = word.delete('aeiou')
  cons.chars.uniq.join == cons
end

grouped = filtered.group_by{|word| word.count('^aeiou')}
grouped.sort_by{|k,v| -k}.each do |chunk|
  puts"n#{chunk.first} consonants (#{chunk.last.size}):"
  puts chunk.last.first(10)
  puts "..." if chunk.last.size > 10
end
9 consonants (1):
comprehensible

8 consonants (39):
administrable
anthropology
blameworthy
bluestocking
boustrophedon
bricklaying
chemisorption
christendom
claustrophobia
compensatory
...

7 consonants (130):
acknowledge
algorithmic
alphanumeric
ambidextrous
amphibology
anchoritism
atmospheric
autobiography
bakersfield
bartholomew
...

6 consonants (152):
aboveground
advantageous
adventurous
aerodynamic
anglophobia
anisotropic
archipelago
automorphic
baltimorean
beneficiary
...

5 consonants (22):
acquisition
acquisitive
acrimonious
ceremonious
deleterious
diatomaceous
egalitarian
equilibrate
equilibrium
equinoctial
...

4 consonants (3):
audiovisual
bourgeoisie
onomatopoeia

TypeScript[edit]

import { readFileSync } from 'node:fs';

const words = readFileSync('unixdict.txt', { encoding: 'utf-8' })
    .split('n')
    .filter(word => word.length > 10)
    .map(word => ({ word, wordWithoutVowels: word.replaceAll(/[aeiou]/g, '') }))
    .map(data => ({ ...data, numUniqueConsonants: new Set(data.wordWithoutVowels).size }))
    .filter(({ wordWithoutVowels, numUniqueConsonants }) => wordWithoutVowels.length === numUniqueConsonants);

const groupedWords = groupBy(words, ({ numUniqueConsonants }) => numUniqueConsonants);

const countsDescending = Array.from(groupedWords.keys()).sort((a, b) => b - a);

for (const count of countsDescending) {
    const words = groupedWords.get(count)!.map(data => data.word);
    const output = words.length <= 30 ? words.join(' ') : `${words.length} words`;
    console.log(`${count}: ${output}`);
}

function groupBy<T, Group>(items: T[], getGroup: (item: T) => Group) {
    const result = new Map<Group, T[]>();

    for (const item of items) {
        const group = getGroup(item);
        
        let array = result.get(group);
        if (!array) {
            array = [];
            result.set(group, array);
        }

        array.push(item);
    }

    return result;
}
9: comprehensible
8: 39 words
7: 130 words
6: 152 words
5: acquisition acquisitive acrimonious ceremonious deleterious diatomaceous egalitarian equilibrate equilibrium equinoctial expeditious hereinabove homogeneous inequitable injudicious inoperative inquisitive interviewee leeuwenhoek onomatopoeic radioactive requisition
4: audiovisual bourgeoisie onomatopoeia

VBScript[edit]

with createobject("ADODB.Stream")
  .charset ="UTF-8"
  .open
  .loadfromfile("unixdict.txt")
  s=.readtext
end with  
a=split (s,vblf)

dim b(25)  'strings with lists of words 
dim c(128) 
'use regexp to count consonants
with new regexp
  .pattern="([^aeiou])"
  .global=true
for each i in a
  if len(trim(i))>10 then
   set matches= .execute(i)   'matches.count has the nr of consonants
   rep=false
   for each m in matches  'remove words with repeated consonants
     x=asc(m)  
     c(x)=c(x)+1
     if c(x)>1 then rep=true :exit for
   next
   erase c
   if not rep then   'add item to its list
     x1=matches.count
     b(x1)=b(x1)&" "&i  'create strings of words with same nr 
   end if    
  end if
next
end with 

'print strings with most consonants first 
for i=25 to 0 step -1
  if b(i)<>"" then  wscript.echo i & "  "& b(i) & vbcrlf
next
9   comprehensible

8   administrable anthropology blameworthy bluestocking boustrophedon bricklaying chemisorption christendom claustrophobia compensatory comprehensive counterexample demonstrable disciplinary discriminable geochemistry hypertensive indecipherable indecomposable indiscoverable lexicography manslaughter misanthropic mockingbird monkeyflower neuropathology paralinguistic pharmacology pitchblende playwriting shipbuilding shortcoming springfield stenography stockholder switchblade switchboard switzerland thunderclap

7   acknowledge algorithmic alphanumeric ambidextrous amphibology anchoritism atmospheric autobiography bakersfield bartholomew bidirectional bloodstream boardinghouse cartilaginous centrifugal chamberlain charlemagne clairvoyant combinatorial compensable complaisant conflagrate conglomerate conquistador consumptive convertible cosmopolitan counterflow countryside countrywide declamatory decomposable decomposition deliquescent description descriptive dilogarithm discernible discriminate disturbance documentary earthmoving encephalitis endothermic epistemology everlasting exchangeable exclamatory exclusionary exculpatory explanatory extemporaneous extravaganza filamentary fluorescent galvanometer geophysical glycerinate groundskeep herpetology heterozygous homebuilding honeysuckle hydrogenate hyperboloid impenetrable imperceivable .....

Wren[edit]

import "io" for File
import "/fmt" for Fmt
import "/seq" for Lst

var wordList = "unixdict.txt" // local copy
var vowelIndices = [0, 4, 8, 14, 20]
var words = File.read(wordList).trimEnd().split("n").where { |w| w.count > 10 }
var wordGroups = List.filled(12, null) // should be enough
for (i in 0..11) wordGroups[i] = []

for (word in words) {
    var letters = List.filled(26, 0)
    for (c in word) {
        var index = c.bytes[0] - 97
        if (index >= 0 && index < 26) letters[index] = letters[index] + 1
    }
    var eligible = true
    var uc = 0 // number of unique consonants
    for (i in 0..25) {
        if (!vowelIndices.contains(i)) {
            if (letters[i] > 1) {
                eligible = false
                break
            } else if (letters[i] == 1) {
                uc = uc + 1
            }
        }
    }
    if (eligible) wordGroups[uc].add(word)
}

for (i in 11..0) {
    var count = wordGroups[i].count
    if (count > 0) {
        var s = (count == 1)  ? "" : "s"
        System.print("%(count) word%(s) found with %(i) unique consonants:")
        for (chunk in Lst.chunks(wordGroups[i], 5)) Fmt.print("$-14s", chunk)
        System.print()
    }
}
1 word found with 9 unique consonants:
comprehensible

39 words found with 8 unique consonants:
administrable  anthropology   blameworthy    bluestocking   boustrophedon 
bricklaying    chemisorption  christendom    claustrophobia compensatory  
comprehensive  counterexample demonstrable   disciplinary   discriminable 
geochemistry   hypertensive   indecipherable indecomposable indiscoverable
lexicography   manslaughter   misanthropic   mockingbird    monkeyflower  
neuropathology paralinguistic pharmacology   pitchblende    playwriting   
shipbuilding   shortcoming    springfield    stenography    stockholder   
switchblade    switchboard    switzerland    thunderclap   

130 words found with 7 unique consonants:
acknowledge    algorithmic    alphanumeric   ambidextrous   amphibology   
anchoritism    atmospheric    autobiography  bakersfield    bartholomew   
bidirectional  bloodstream    boardinghouse  cartilaginous  centrifugal   
chamberlain    charlemagne    clairvoyant    combinatorial  compensable   
complaisant    conflagrate    conglomerate   conquistador   consumptive   
convertible    cosmopolitan   counterflow    countryside    countrywide   
declamatory    decomposable   decomposition  deliquescent   description   
descriptive    dilogarithm    discernible    discriminate   disturbance   
documentary    earthmoving    encephalitis   endothermic    epistemology  
everlasting    exchangeable   exclamatory    exclusionary   exculpatory   
explanatory    extemporaneous extravaganza   filamentary    fluorescent   
galvanometer   geophysical    glycerinate    groundskeep    herpetology   
heterozygous   homebuilding   honeysuckle    hydrogenate    hyperboloid   
impenetrable   imperceivable  imperishable   imponderable   impregnable   
improvident    improvisation  incomparable   incompatible   incomputable  
incredulity    indefatigable  indigestible   indisputable   inexhaustible 
inextricable   inhospitable   inscrutable    jurisdiction   lawbreaking   
leatherback    leatherneck    leavenworth    logarithmic    loudspeaking  
maidservant    malnourished   marketplace    merchandise    methodology   
misanthrope    mitochondria   molybdenite    nearsighted    obfuscatory   
oceanography   palindromic    paradigmatic   paramagnetic   perfectible   
phraseology    politicking    predicament    presidential   problematic   
proclamation   promiscuity    providential   purchasable    pythagorean   
quasiparticle  quicksilver    radiotelephone sedimentary    selfadjoint   
serendipity    sovereignty    subjunctive    superfluity    terminology   
valedictorian  valedictory    verisimilitude vigilantism    voluntarism   

152 words found with 6 unique consonants:
aboveground    advantageous   adventurous    aerodynamic    anglophobia   
anisotropic    archipelago    automorphic    baltimorean    beneficiary   
borosilicate   cabinetmake    californium    codetermine    coextensive   
comparative    compilation    composition    confabulate    confederate   
considerate    consolidate    counterpoise   countervail    decisionmake  
declamation    declaration    declarative    deemphasize    deformation   
deliverance    demountable    denumerable    deoxyribose    depreciable   
deprivation    destabilize    diagnosable    diamagnetic    dichotomize   
dichotomous    disambiguate   eigenvector    elizabethan    encapsulate   
enforceable    ephemerides    epidemiology   evolutionary   exceptional   
exclamation    exercisable    exhaustible    exoskeleton    expenditure   
experiential   exploration    fluorescein    geometrician   hemosiderin   
hereinbelow    hermeneutic    heterogamous   heterogeneous  heterosexual  
hexadecimal    hexafluoride   homebuilder    homogeneity    housebroken   
icosahedral    icosahedron    impersonate    imprecision    improvisate   
inadvisable    increasable    incredulous    indivisible    indomitable   
ineradicable   inescapable    inestimable    inexcusable    infelicitous  
informatica    informative    inseparable    insuperable    ionospheric   
justiciable    kaleidescope   kaleidoscope   legerdemain    liquefaction  
loudspeaker    machinelike    magisterial    maladaptive    mantlepiece   
manufacture    masterpiece    meetinghouse   meteorology    minesweeper   
ministerial    multifarious   musculature    observation    patrimonial   
peasanthood    pediatrician   persecution    pertinacious   picturesque   
planetarium    pleistocene    pomegranate    predominate    prejudicial   
prohibition    prohibitive    prolegomena    prosecution    provisional   
provocation    publication    quasiperiodic  reclamation    religiosity   
renegotiable   residential    rooseveltian   safekeeping    saloonkeeper  
serviceable    speedometer    subrogation    sulfonamide    superficial   
superlative    teaspoonful    trapezoidal    tridiagonal    troublesome   
vainglorious   valediction    venturesome    vermiculite    vocabularian  
warehouseman   wisenheimer   

22 words found with 5 unique consonants:
acquisition    acquisitive    acrimonious    ceremonious    deleterious   
diatomaceous   egalitarian    equilibrate    equilibrium    equinoctial   
expeditious    hereinabove    homogeneous    inequitable    injudicious   
inoperative    inquisitive    interviewee    leeuwenhoek    onomatopoeic  
radioactive    requisition   

3 words found with 4 unique consonants:
audiovisual    bourgeoisie    onomatopoeia  

XPL0[edit]

string  0;      use zero-terminated strings
int     MaxCon, Con, Set, I, Ch;
char    Word(25), MaxWord(25);
def     LF=$0A, CR=$0D, EOF=$1A;
[FSet(FOpen("unixdict.txt", 0), ^I);
OpenI(3);
MaxCon:= 0;
repeat  I:= 0;  Con:= 0;  Set:= 0;
        loop    [repeat Ch:= ChIn(3) until Ch # CR;     remove possible CR
                if Ch=LF or Ch=EOF then quit;
                Word(I):= Ch;
                I:= I+1;
                case Ch of ^a,^e,^i,^o,^u: []           assume lowercase words
                other   [Con:= Con+1;                   count constant
                        if Set & 1<<(Ch-^a) then Con:= 0; reject if not unique
                        Set:= Set ! 1<<(Ch-^a);
                        ];
                ];
        Word(I):= 0;                                    terminate string
        if Con > MaxCon then                            save Word with maximum
                [MaxCon:= Con;                           constants
                CopyMem(MaxWord, Word, 25);
                ];
until   Ch = EOF;
Text(0, MaxWord);
]
comprehensible

Like this post? Please share to your friends:
  • Word with more than one meaning in english
  • Word with mid in them
  • Word with letters containing
  • Word with meat or sugar
  • Word with less in the end