19
\$\begingroup\$

Output any 200 words fromWordnik without using external sources. Any case. No repeated or extra words. Code golf.

askedJul 11 at 2:28
Steve Bennett's user avatar
\$\endgroup\$
16
  • 2
    \$\begingroup\$It'd be great if people voting to close for lack of details would leave comments about what details they think are missing.\$\endgroup\$CommentedJul 11 at 5:01
  • 10
    \$\begingroup\$@mousetaill This isn't a duplicate of the Rickroll. The Rickroll requires output of specific text with very little to do except standard compression. This isn't asking for the full wordlist, a major part of the challenge is to pick the best 200 words. Also VERY occasionally a song comes along whose lyrics have such a strong pattern that alternatives to simple compression works better, Seecodegolf.meta.stackexchange.com/q/6956/15599 and I'm disappointed that nobody except me has taken full advantage of the structure of that song. I have the shortest answers in both Ruby and Golfscript\$\endgroup\$CommentedJul 11 at 6:45
  • 6
    \$\begingroup\$Even the question is code golfed :)\$\endgroup\$CommentedJul 12 at 14:12
  • 3
    \$\begingroup\$57 byte noncompeting with no prefix/suffix stuff\$\endgroup\$CommentedJul 14 at 19:44
  • 1
    \$\begingroup\$If it weren't for the "no repeats or extras", I was thinking of cheating with Python'slicense(), which outputs about 2000 dictionary words. Or to see if somehelp("something") happened to consist of the right number of words.\$\endgroup\$CommentedJul 16 at 18:36

13 Answers13

24
\$\begingroup\$

JavaScript (V8), 99 bytes

A full program printing 200 words in lower case.

for(n in p="bbfbbbcghfgjdmrmlmhtwptpm")"sdgntdsgsts".replace(/.s?/g,s=>print(p[n]+"oaaeiu"[n%6]+s))

Try it online!

Method

This is the Cartesian product of 25 prefixes and 8 suffixes, chosen in such a way that all resulting words exist in the Wordnik listing.

The prefixes are:

bo ba fa be bi bu co ga ha fe gi ju do ma ra me li mu ho ta wa pe ti pu mo

Only consonants are stored in the outer lookup string"bbfb..pm". Vowels follow the patterno,a,a,e,i,u.

The suffixes are:

s d g n t ds gs ts

They are are extracted from the inner lookup string"sdgntdsgsts" with the regular expression/.s?/g.

Words

Below are the generated words, along with the line number at which they appear in the file.

bos   19600bod   18688bog   18779bon   19063bot   19659bods  18720bogs  18817bots  19721bas   13508bad   12328bag   12391ban   12796bat   13730bads  12366bags  12431bats  13820fas   61465fad   60817fag   60869fan   61154fat   61567fads  60855fags  60892fats  61640bes   15596bed   14371beg   14763ben   15255bet   15808beds  14546begs  14863bets  15888bis   17228bid   16236big   16335bin   16617bit   17305bids  16273bigs  16405bits  17339bus   22526bud   21724bug   21814bun   22131but   22686buds  21767bugs  21852buts  22727cos   36965cod   31752cog   32065con   33912cot   37148cods  31872cogs  32128cots  37204gas   69239gad   68408gag   68468gan   68921gat   69405gads  68448gags  68489gats  69455has   76323had   75026hag   75115han   75642hat   76379hads  75051hags  75182hats  76441fes   62487fed   61935feg   62035fen   62231fet   62529feds  61971fegs  62036fets  62595gis   70925gid   70605gig   70646gin   70769git   70934gids  70619gigs  70690gits  70941jus   91178jud   90894jug   90947jun   91070jut   91217juds  90945jugs  90969juts  91221dos   50633dod   49923dog   49990don   50335dot   50674dods  49971dogs  50107dots  50696mas   101468mad   99646mag   99762man   100522mat   101704mads  99719mags  99926mats  101870ras   141090rad   140225rag   140482ran   140838rat   141151rads  140444rags  140535rats  141280mes   103330med   102312meg   102527men   102944met   103534meds  102477megs  102657mets  103990lis   97215lid   96367lig   96472lin   96805lit   97269lids  96377ligs  96580lits  97413mus   109880mud   109087mug   109196mun   109705mut   110083muds  109151mugs  109222muts  110158hos   80126hod   78979hog   79008hon   79591hot   80212hods  78996hogs  79043hots  80276tas   174440tad   173572tag   173607tan   174028tat   174503tads  173575tags  173634tats  174520was   193156wad   192451wag   192540wan   192851wat   193274wads  192492wags  192590wats  193451pes   127063ped   125366peg   125581pen   125741pet   127126peds  125498pegs  125597pets  127246tis   178237tid   177704tig   177789tin   178009tit   178248tids  177744tigs  177834tits  178338pus   138648pud   137924pug   137998pun   138252put   138725puds  137958pugs  138034puts  138766mos   108498mod   107073mog   107217mon   107449mot   108565mods  107184mogs  107226mots  108729
answeredJul 11 at 6:52
Arnauld's user avatar
\$\endgroup\$
1
  • \$\begingroup\$Unupvoted this so I could upvote it again; well done on getting it down under 100 bytes.\$\endgroup\$CommentedJul 12 at 21:19
15
\$\begingroup\$

Google Sheets, 174 bytes

=sortn(let(c,mid("bcdfghjklmnpqrstvwxyz",row(1:21),1),t,map(tocol(torow(c&split("a0e0i0o0u",0))&c),lambda(w,googletranslate(w))),filter(t,regexmatch(t,"^[a-w]{4,}$"))),200,2)

Generates 2205 three-letter gibberish words likebab, bac, bad...zux, zuy, zuz, translates them from "any language" to English, weeds out translations that have less than four letters, or contain uppercase, whitespace, punctuation or[xyz], and finally takes the first 200 uniques. Requires an English spreadsheet locale.

The first ten words in the result areaccess, accident, adult, afraid, again, against, alien, alone, also, although and the last ten arelittle, live, load, look, loop, magic, make, male, market, matter. All 200 words appear in the Wordnik list.

Ungolfed:

=sortn(  let(    letters, char(row(97:122)),    vowels, split("a0e0i0o0u", 0),    consonants, filter(letters, isna(match(letters, vowels,))),    words, tocol(torow(consonants & vowels) & consonants),    translated, map(words, lambda(word, googletranslate(word))),    filter(translated, regexmatch(translated, "^[a-w]{4,}$"))  ),  200, 2)

Alternative method, using a Cartesian product ofArnauld's prefixes and suffixes inrevision 9 (108 bytes):

=sort(mid(" babebibobucodofafegagihahojulimamemomupepuraresoa",2*row(1:25),2)&split("d0g0n0s0t0ds0gs0ts",0))

Outputs an 8 x 25 array of (more boring) short words likebad, bads, bag, bags, ban, bas, bat, bats. This latter formula is non-competing because Cartesian product is easy and the real work was to find this close to optimal list of prefixes and suffixes.

answeredJul 11 at 6:54
doubleunary's user avatar
\$\endgroup\$
8
  • 1
    \$\begingroup\$that's actually very smart\$\endgroup\$CommentedJul 11 at 7:09
  • 2
    \$\begingroup\$Out of curiosity: have you checked all your 200 words are in the Wordnik list? Some completely valid English words like"internet" aren't in the provided Wordnik-list for example, so I had to manually check and remove some of the generated words in my answer.\$\endgroup\$CommentedJul 11 at 8:23
  • 1
    \$\begingroup\$@KevinCruijssen thanks, I didn't catchapprox initially. Fixed that at no byte cost.\$\endgroup\$CommentedJul 11 at 9:58
  • 2
    \$\begingroup\$@Shaggy the formula usessort() as a shortcut to enable array processing. It's shorter thanindex() orarrayformula() or friends.\$\endgroup\$CommentedJul 11 at 14:49
  • 2
    \$\begingroup\$🤔 I'm torn as to whether the use ofgoogletranslate here can be considered an external resource or a built-in. I'm leaning towards built-in, though, because your code isn'tretrieving anything external.\$\endgroup\$CommentedJul 11 at 15:48
8
\$\begingroup\$

Python, 98 bytes

-5 (@xnor)

*a,="Tn"for z in"TgtRmdMsgBdtHmpDbegn":a[z>'Z']=z;[print(b:=s.join(a),"\n"+b+"s")for s in"aeiou"]

Attempt This Online!

Python, 103 bytes

*a,="Vg"for z in"gSnTgtRdmMdgsPptNbDepngFrnGetHmpnBstdgLd":a[z>'Z']=z;[print(*a,sep=s)for s in"aeoui"]

Attempt This Online!

PreviousPython, 116 bytes

[print(x+s+y)for x,y in zip('vlnslns'+3*'fgprt'+5*"bdhm",'ggtndbgrttttnnsmngepdgtptssnpmngnggemddb')for s in"aeoui"]

Attempt This Online!

How?

Abuses the fact that there are 40 groups of 3-letter words of the formx + [ieauo] + y in the list, i.e. words likebig,beg,bag,bug,bog ornit,net,nat,nut,not.

answeredJul 11 at 12:15
Albert.Lang's user avatar
\$\endgroup\$
3
  • \$\begingroup\$Could you maybe find half of them that can optionally take an -s ending?\$\endgroup\$CommentedJul 11 at 18:12
  • \$\begingroup\$@xnor Good idea. Saved me 5 even though my implementation feels super-clumsy.\$\endgroup\$CommentedJul 11 at 19:41
  • \$\begingroup\$I like your method to update each pair using only 1 letter. Might be useful onPrint all 2 letter Scrabble Words.\$\endgroup\$CommentedJul 11 at 21:50
5
\$\begingroup\$

Ruby, 106 bytes

680.times{|i|"e@k@pPI@@Pmf`@N@Fsv"[k=i/36].ord[c=i/6%6]>0&&p((k+66).chr+"aeo"[i%6/2]+'ywtpng'[c]+?s*i%=2)}

Try it online!

Outputs selected groups of three 3 letter words which are identical apart from the vowel (in second position) beingae oro, and also the same three words with ans added at the end (total 6 words in each group, except the last one which is truncated to give exactly 200 words.)

The 3 letter words all end in one of the lettersywtpng. Sufficient words can be found by varying the first letter in the rangeB..T. The magic string contains one character for each first letter. Its ascii code encodes bitwise for the last lettersywtpng that form valid words with that first letter.

Ruby, 125 bytes

301.times{|i|('swkw7wAyw+wQwwxy.NU%vvwwwW8aud8xw<owwoxxG~w'[i/7].ord+8)[i%7]>0&&(p (66+i/14).chr+'ao'[i/7%2]+'ngwsypt'[i%7])}

Try it online!

Outputs nearly all 3 letter words witha oro as the middle letter and any ofngwsypt as the final letter. A complete list of such words (including those not used) is given below. The ascii code for each character in the magic string encodes bitwise for one column of the table balow. Words alphabetically beforeB and afterWay are not used.

One word in the middle of the table,ios, is skipped for golfing reasons. This is because the characters in the program are 8 less than the actual bitwise encoding, to allow the value 127 (not a printable ascii character) to be encoded for, and to wrap around to some small numbers foreon andvog/vow. Including bothion andios would requre addition of an offset larger than 8 (specifically at least hex89-7E = 11 decimal) which would add an extra byte for a 201st word that is not required by the challenge.

        ban bon can con dan don ean eon fan fon gan gon han hon     ion             kan kon         man mon nan non     oon pan             ran     san son tan ton     van     wan won     yon         bag bog cag cog dag dog         fag fog gag     hag hog             jag jog         lag log mag mog nag nog                         rag     sag sog tag tog     vag vog wag wog yag     zag             bow     cow daw dow         faw     gaw     haw how             jaw jow kaw kow law low maw mow naw now         paw pow         raw row saw sow taw tow     vaw vow waw wow yaw yowaas     bas bos     cos das dos eas     fas     gas gos has hos     ios             kas kos las los mas mos nas nos     oos pas pos         ras         sos tas         vas     was wos yas     zas zos        bay boy cay coy day doy         fay foy gay goy hay hoy             jay joy kay     lay loy may moy nay noy         pay             ray     say soy tay toy             way     yay        bap bop cap cop dap dop         fap fop gap     hap hop             jap         kop lap lop map mop nap         oop pap pop         rap     sap sop tap top             wap wop yap     zap         bat bot cat cot     dot eat     fat     gat got hat hot                 jot kat     lat lot mat mot nat not oat oot pat pot  qat    rat rot sat sot tat tot     vat     wat wot
answeredJul 12 at 0:58
Level River St's user avatar
\$\endgroup\$
2
  • 1
    \$\begingroup\$Drop a space withp((66+i...[i%7])Try it online!\$\endgroup\$CommentedJul 12 at 1:04
  • \$\begingroup\$@ValueInk thanks, I've used that in my improved answer with a better approach.\$\endgroup\$CommentedJul 12 at 4:35
5
\$\begingroup\$

Vim,63 51 bytes

-12 bytes (and -2 dependencies) thanks toAaroneous Miller

:h.153YZZp:%s/\s\+/\r/g:sor iu|v/^\w\{3,\}$/dd2k

Try it online!

Explanation

Uses a variant ofthis technique for retrieving the alphabet from the Vim help file.

:h.

Open the built-in help file to the section on the. command.

153Y

Copy the next 153 lines.

ZZp

Exit the help file and paste.

:%s/\s\+/\r/g

Replace all runs of whitespace with newlines.

:sor iu

Apply thesort command to all lines, case-insensitive, anduniquify the results.

|v/^\w\{3,\}$/d'

Also apply thevglobal command to all lines: match all lines that donot match the regex^\w{3,}$ (i.e. that do not consist of 3 or more word characters), anddelete them.

This results in 203 words and leaves the cursor on the last line, so:

d2k

Delete the last line and the two lines above it.

answeredJul 17 at 22:15
DLosc's user avatar
\$\endgroup\$
2
  • \$\begingroup\$51 bytes w/o shell commands, also TIL Vim has a built-in sort command!\$\endgroup\$CommentedSep 22 at 20:17
  • 1
    \$\begingroup\$TIL also--I recall I googled "how to sort in Vim" and the top results said "use shell commands"!\$\endgroup\$CommentedSep 23 at 22:04
4
\$\begingroup\$

Charcoal, 81 bytes

F⪪”{&^v¡↑Kp⁺#*-J¶AθWΠ⁼≧⁻23⎇zCU⊖↶dζ)⁻>_+↨ξχb…WvAVE9ε⦄7i⟲g|⟦jΦU⬤⁺⪫ιa⪪asaedaing¦a

Try it online! Link is to verbose version of code. Explanation:

F⪪”...”²

Split a compressed 100-letter string into pairs of letters.

⁺⪫ιa⪪asaedaing¦a

Join each pair with ana, then output the string plus with the suffixess,ed anding.

Of the words in the list, there are exactly50 which satisfy the following criteria:

  • Exactly 3 letters long
  • Middle letter isa
  • Does not otherwise contain any of the lettersaefhjkoqvxz
  • When suffixed withs,ed oring, remains a word in the list

Excluding the rarer letters rather than simply taking the first50 saved me a byte.

answeredJul 11 at 8:31
Neil's user avatar
\$\endgroup\$
2
  • 1
    \$\begingroup\$A port of @Shaggy's Japt answer is only 51 bytes:Try it online!\$\endgroup\$CommentedJul 11 at 15:09
  • \$\begingroup\$A port of @Arnauld's latest JavaScript answer is only 48 bytes:Try it online!\$\endgroup\$CommentedJul 13 at 0:41
3
\$\begingroup\$

05AB1E, 52bytes

žĆ99Å12•edôú•₆вǝ7TÌǝ.¥ƵR+èãJ''ì€.VASK“€Ö‚¾‚惖“#Kт·£

Try it online.

Explanation:

žĆ               # Push the 05AB1E codepage string  99Å1           # Push a list of 99 1s      2          # Push a 2       •edôú•    # Push compressed integer 665853189             ₆в  # Convert it to base-36 as list: [11,0,15,19,21,33]               ǝ # Replace the 1s in the list at those indices with 2s      7TÌǝ       # Also replace the 1 at index 12 (10+2) with a 7      .¥         # Undelta the list        žy+      # Add constant integer 128 to each           è     # Get the characters at those indices in the codepage stringã                # Cartesian product to get all possible pairs J               # Join each inner pair of characters together  ''ì            # Prepend a "'" before each     €.V         # Evaluate and execute each as 05AB1E code, to get its dictionary stringsAS               # Push the alphabet-string and convert it to a list of characters  K              # Remove all those single letter words from the list   “€Ö‚¾‚惖“    # Push dictionary string "jan pm january ebay"             #   # Split it on spaces: ["jan","pm","january","ebay"]              K  # Remove those from the list as wellт·               # Push 200 (100*2)  £              # Only keep that many words from the list                 # (after which the result is output implicitly)

Note: The 05AB1E dictionary words["jan","pm","january","ebay"] are among the 204 first generated words, but are not in the provided Wordnik-list, hence why I had to remove those manually before getting the first 200.

See this 05AB1E tip of mine (sectionsHow to use the dictionary?,How to compress large integers?, andHow to compress integer lists?) to understand why•edôú• is665853189;•edôú•₆в is[11,0,15,19,21,33]; and“€Ö‚¾‚惖“ is"jan pm january ebay".

answeredJul 11 at 8:20
Kevin Cruijssen's user avatar
\$\endgroup\$
3
\$\begingroup\$

Wolfram Language (Mathematica), 20 bytes

WordList[][[2;;201]]

Takes the 2nd through 201th words from the builtin dictionaryWordList[] (the 1st word,"a", isn't in Wordnik). The output is:

{"aah", "aardvark", "aback", "abacus", "abaft", "abalone", "abandon","abandoned", "abandonment", "abase", "abasement", "abash", "abashed","abashment", "abate", "abatement", "abattoir", "abbe", "abbess","abbey", "abbot", "abbreviate", "abbreviated", "abbreviation","abdicate", "abdication", "abdomen", "abdominal", "abduct","abducting", "abduction", "abductor", "abeam", "abed", "aberrant","aberration", "abet", "abettor", "abeyance", "abhor", "abhorrence","abhorrent", "abidance", "abide", "abiding", "ability", "abject","abjection", "abjectly", "abjuration", "abjure", "ablate", "ablated","ablation", "ablative", "ablaze", "able", "abloom", "ablution","ably", "abnegate", "abnegation", "abnormal", "abnormality","abnormally", "aboard", "abode", "abolish", "abolition","abolitionism", "abolitionist", "abominable", "abominably","abominate", "abomination", "aboriginal", "aborigine", "abort","abortion", "abortionist", "abortive", "abortively", "abound","abounding", "about", "above", "aboveboard", "abracadabra", "abrade","abrasion", "abrasive", "abrasiveness", "abreast", "abridge","abridged", "abridgment", "abroad", "abrogate", "abrogation","abrupt", "abruptly", "abruptness", "abscess", "abscessed","abscissa", "abscission", "abscond", "absconder", "abseil","absence", "absent", "absentee", "absenteeism", "absently","absentminded", "absentmindedly", "absentmindedness", "absinthe","absolute", "absolutely", "absoluteness", "absolution", "absolutism","absolutist", "absolve", "absolved", "absorb", "absorbed","absorbency", "absorbent", "absorber", "absorbing", "absorption","absorptive", "absorptivity", "abstain", "abstainer", "abstemious","abstemiously", "abstemiousness", "abstention", "abstinence","abstinent", "abstract", "abstracted", "abstractedly","abstractedness", "abstracter", "abstraction", "abstractly","abstractness", "abstruse", "abstrusely", "abstruseness", "absurd","absurdity", "absurdly", "abundance", "abundant", "abundantly","abuse", "abused", "abuser", "abusive", "abusively", "abut","abutment", "abuzz", "abysmal", "abysmally", "abyss", "abyssal","acacia", "academe", "academia", "academic", "academically","academician", "academy", "acanthus", "accede", "accelerate","accelerated", "acceleration", "accelerator", "accelerometer","accent", "accented", "accenting", "accentual", "accentuate","accentuation", "accept", "acceptability", "acceptable","acceptableness", "acceptably", "acceptance", "acceptation", "accepted"}
answeredJul 11 at 15:06
Greg Martin's user avatar
\$\endgroup\$
1
  • \$\begingroup\$Gnaw, beat me to it (+1)\$\endgroup\$CommentedJul 11 at 16:07
3
\$\begingroup\$

Python 3,89 84 bytes

-4 Thanks to kg583

-1 Thanks to Neil

84 Byte

l=license;l.MAXLINES=999;print(sorted(filter(str.isalpha,{*str(l).split()}))[-200:])

89 Byte

l=license;l.MAXLINES=999;print(sorted(filter(str.isalpha,set((repr(l)).split())))[-200:])

No TIO link since this solution does not work there :(

Instead of constructing the words from scratch, I wanted to use existing text builtin to the language, and found the license text to be the adequate for this purpose. There are three main components of this solution.

Firstly, the license text is stored in a file, and python does not read in this file by default. To get this file read, the__setup method of thelicense._Printer object must be called. Callinglicense._Printer__setup() ourselves is very costly in terms of bytes, but lucky for us, the__repr__ function of license actually calls this setup function.

Secondly,MAXLINES attribute oflicense must be set to a number higher than the number of lines in the license, otherwiserepr will return the string 'Type license() to see the full license text'. The motivation for this behavior of the license builtin is beyond me, but I think it has something to do with how the license will display by pages in the interactive session.

Finally, with the actual text in hand, we need to perform some manipulation to filter down to nonduplicate, valid words.

The output list is:

['origin', 'original', 'other', 'others', 'otherwise', 'out', 'outside', 'outstanding', 'own', 'owner', 'ownership', 'page', 'part', 'patent', 'percent', 'perform', 'permission', 'permissions', 'permit', 'permitted', 'persistent', 'person', 'persons', 'pertain', 'pertaining', 'plainly', 'platform', 'portions', 'possibility', 'possible', 'preferred', 'prepare', 'prepared', 'prepares', 'previously', 'principal', 'prior', 'product', 'products', 'program', 'programs', 'prominent', 'promote', 'property', 'protect', 'provide', 'provided', 'provides', 'proxy', 'publicity', 'publicly', 'purpose', 'purposes', 'readable', 'reason', 'reasonable', 'received', 'recipients', 'redistributing', 'redistribution', 'regard', 'regarding', 'related', 'relationship', 'released', 'releases', 'remain', 'remains', 'reproduce', 'reproducing', 'require', 'required', 'requirements', 'respect', 'respects', 'responsible', 'restrictions', 'result', 'resulting', 'retain', 'retained', 'rights', 'risks', 'royalty', 'run', 'running', 'same', 'see', 'sell', 'sense', 'sent', 'separable', 'separate', 'server', 'service', 'services', 'several', 'shall', 'software', 'sole', 'solely', 'source', 'specific', 'specifically', 'specified', 'sponsoring', 'state', 'stated', 'statement', 'stating', 'subject', 'submit', 'submitted', 'subsequently', 'substantial', 'substitute', 'successor', 'such', 'suggests', 'summarizes', 'summary', 'supersede', 'supporting', 'systems', 'table', 'team', 'technologies', 'terminate', 'terms', 'text', 'than', 'that', 'the', 'their', 'then', 'thereof', 'these', 'they', 'third', 'this', 'those', 'through', 'thru', 'to', 'together', 'told', 'tools', 'tort', 'tracking', 'trade', 'trademark', 'trademarks', 'transfer', 'transformation', 'translation', 'under', 'union', 'unlawful', 'unless', 'unlike', 'upon', 'use', 'used', 'users', 'uses', 'using', 'van', 'various', 'venture', 'verbatim', 'version', 'versions', 'volunteers', 'wants', 'warranties', 'warranty', 'was', 'way', 'web', 'website', 'where', 'wherever', 'whether', 'which', 'who', 'whom', 'will', 'with', 'within', 'without', 'work', 'worked', 'works', 'would', 'writing', 'written', 'wrote', 'yes', 'you', 'your']

On TIO, we get the output['See']. I'm assuming that the attempt to read in the license file during the call to__setup results in anOSError which then defaults to returning the string, 'Seehttps://www.python.org/psf/license/'.

As Neil points out in a comment, theAttempt This Online! will let us read the license text and produce an output of 200 words. The output is different than the list I get when I run locally, and includes the invalid word 'internet' leaving us at only 199 valid entries with this method.

After checking the diff between the license I have and the one from ATO, the license I have is longer, containing a few extra sections, including "Additional conditions for this windows binary build" and an Apache License, among other things.

I had some failed attempts at using other builtin words, such as those found in the__doc__ attributes of the builtins, the Zen of Python, copyright text, help text, and even the python keywords and names of the builtins. In the end, the license text was the only one I could wrangle to a manageable number of bytes.

answeredJul 14 at 4:03
cd_woomy's user avatar
\$\endgroup\$
2
  • \$\begingroup\$-4:set((repr(l)).split()) ->{*repr(l).split()}\$\endgroup\$CommentedJul 14 at 6:15
  • \$\begingroup\$Seems to work fine onAttempt This Online! although I didn't verify the output.\$\endgroup\$CommentedJul 14 at 9:08
2
\$\begingroup\$

Japt, 45bytes

Uses a previous version of Arnauld's prefixes & suffixes with some manual resorting, of the prefixes in particular, to optimise compression.

`n¡gd`¬c¢ïs¬)ïi`¼¾¿ßðÜ™•—jå)Õ‹a´é)”œè@œa`ò

Test it

`...`\n¬c¢ïs¬)ïi`...`ò`...`                      :Compressed string "nstgd"     \n                    :Assign to variable U       ¬                   :Split U        c                  :Concat         ¢                 :  U with first 2 characters removed          ï                :  Cartesian product with           s¬              :    "s" split to an array             )             :End concat              ï            :Cartesian product with                `...`      :  Compressed string "bebobubicodofehahojugabalimamegimomupepurasofarea"                     ò     :  Partitions of length 2, giving us a lone "a" at the end.               i           :Reduce each pair by prepending
answeredJul 11 at 14:08
Shaggy's user avatar
\$\endgroup\$
2
\$\begingroup\$

Python, 167 bytes

sorted(set([x for x in" ".join(str(v.__doc__)for v in __builtins__.__dict__.values()).split()if str.isalpha(x)and str.islower(x)and 3<len(x)<7and not "f"in x]))[-200:]

Attempt This Online!

answeredJul 14 at 21:14
corvus_192's user avatar
\$\endgroup\$
0
\$\begingroup\$

Vyxal 3, 50 bytes

"ʎIMDξB‹2Ġ∻Þr=⌊W“ka⊢ƛᏐ$⏚kv⊢mi&w"dgts":ƵX“&'n&fX¨f“

Vyxal 3 port of Arnaud's answer, golfed.

Vyxal It Online!

"ʎIMDξB‹2Ġ∻Þr=⌊W“ka⊢ƛᏐ$⏚kv⊢mi&w"dgts":ƵX“&'n&fX¨f“­⁡​‎‎⁡⁠⁡‏⁠‎⁡⁠⁢‏⁠‎⁡⁠⁣‏⁠‎⁡⁠⁤‏⁠‎⁡⁠⁢⁡‏⁠‎⁡⁠⁢⁢‏⁠‎⁡⁠⁢⁣‏⁠‎⁡⁠⁢⁤‏⁠‎⁡⁠⁣⁡‏⁠‎⁡⁠⁣⁢‏⁠‎⁡⁠⁣⁣‏⁠‎⁡⁠⁣⁤‏⁠‎⁡⁠⁤⁡‏⁠‎⁡⁠⁤⁢‏⁠‎⁡⁠⁤⁣‏⁠‎⁡⁠⁤⁤‏⁠‎⁡⁠⁢⁡⁡‏‏​⁡⁠⁡‌⁢​‎‎⁡⁠⁢⁡⁢‏⁠‎⁡⁠⁢⁡⁣‏⁠‎⁡⁠⁢⁡⁤‏‏​⁡⁠⁡‌⁣​‎‎⁡⁠⁢⁢⁡‏‏​⁡⁠⁡‌⁤​‎‎⁡⁠⁢⁤⁢‏‏​⁡⁠⁡‌⁢⁡​‎‎⁡⁠⁢⁣⁤‏⁠‎⁡⁠⁢⁤⁡‏‏​⁡⁠⁡‌⁢⁢​‎‎⁡⁠⁢⁢⁢‏⁠‎⁡⁠⁢⁢⁣‏⁠‎⁡⁠⁢⁢⁤‏⁠‎⁡⁠⁢⁣⁡‏⁠‎⁡⁠⁢⁣⁢‏⁠‎⁡⁠⁢⁣⁣‏‏​⁡⁠⁡‌⁢⁣​‎‎⁡⁠⁢⁢⁢‏⁠‎⁡⁠⁢⁢⁣‏⁠‎⁡⁠⁢⁢⁤‏‏​⁡⁠⁡‌⁢⁤​‎‎⁡⁠⁢⁣⁡‏⁠‎⁡⁠⁢⁣⁢‏⁠‎⁡⁠⁢⁣⁣‏‏​⁡⁠⁡‌⁣⁡​‎‎⁡⁠⁢⁤⁣‏‏​⁡⁠⁡‌⁣⁢​‎‎⁡⁠⁣⁤⁣‏⁠⁠‏​⁡⁠⁡‌⁣⁣​‎‎⁡⁠⁢⁤⁤‏⁠‎⁡⁠⁣⁡⁡‏⁠‎⁡⁠⁣⁡⁢‏⁠‎⁡⁠⁣⁡⁣‏⁠‎⁡⁠⁣⁡⁤‏⁠‎⁡⁠⁣⁢⁡‏⁠‎⁡⁠⁣⁢⁢‏⁠‎⁡⁠⁣⁢⁣‏⁠‎⁡⁠⁣⁢⁤‏⁠‎⁡⁠⁣⁣⁡‏⁠‎⁡⁠⁣⁣⁢‏⁠‎⁡⁠⁣⁣⁣‏⁠‎⁡⁠⁣⁣⁤‏⁠‎⁡⁠⁣⁤⁡‏⁠‎⁡⁠⁣⁤⁢‏⁠⁠‏​⁡⁠⁡‌⁣⁤​‎‎⁡⁠⁢⁤⁤‏⁠‎⁡⁠⁣⁡⁡‏⁠‎⁡⁠⁣⁡⁢‏⁠‎⁡⁠⁣⁡⁣‏⁠‎⁡⁠⁣⁡⁤‏⁠‎⁡⁠⁣⁢⁡‏⁠‎⁡⁠⁣⁢⁢‏‏​⁡⁠⁡‌⁤⁡​‎⁠‎⁡⁠⁣⁢⁣‏⁠‎⁡⁠⁣⁢⁤‏⁠‎⁡⁠⁣⁣⁡‏‏​⁡⁠⁡‌⁤⁢​‎‎⁡⁠⁣⁣⁢‏‏​⁡⁠⁡‌⁤⁣​‎‎⁡⁠⁣⁣⁣‏⁠‎⁡⁠⁣⁣⁤‏⁠‎⁡⁠⁣⁤⁡‏‏​⁡⁠⁡‌⁤⁤​‎‎⁡⁠⁣⁤⁢‏‏​⁡⁠⁡‌⁢⁡⁡​‎‎⁡⁠⁣⁤⁤‏⁠‎⁡⁠⁤⁡⁡‏⁠‎⁡⁠⁤⁡⁢‏‏​⁡⁠⁡‌­"ʎIMDξB‹2Ġ∻Þr=⌊W“                                   # ‎⁡compressed integer 9524838950348700701773904696055446                 ka⊢                                # ‎⁢to base lowercase alphabet                                                    # ‎⁢yields "bbfbbbcghfgjdmrmlmhtwptpm"                    ƛ                               # ‎⁣map over each char:                             &                      # ‎⁤append to that char...                           mi                       # ‎⁢⁡the vowel indexed by the current char's position in the string                     Ꮠ$⏚kv⊢                         # ‎⁢⁢vowel generator, yields "oaaeiu"                     Ꮠ$⏚                            # ‎⁢⁣compressed integer 9414                        kv⊢                         # ‎⁢⁤to base lowercase vowels                              w                     # ‎⁣⁡wrap in a list for next part                                              X     # ‎⁣⁢cartesian product of prefixes and...                               "dgts":ƵX“&'n&f      # ‎⁣⁣suffixes list, yields ["d", "g", "t", "s", "ds", "gs", "ts", "n"]                               "dgts":              # ‎⁣⁤literal string "dgts", duplicated                                      ƵX“           # ‎⁤⁡pop tail of one copy and append it to each letter                                                    # ‎⁤⁡yields ["ds", "gs", "ts"]                                         &          # ‎⁤⁢append to the original copy, as a list of characters                                          'n&       # ‎⁤⁣append a single "n"                                             f      # ‎⁤⁤flatten the whole thing                                               ¨f“  # ‎⁢⁡⁡flatten each string generated by the cartesian product and join it for display💎

Created with the help ofLuminespire.

<script type="vyxal3">"ʎIMDξB‹2Ġ∻Þr=⌊W“ka⊢ƛᏐ$⏚kv⊢mi&w"dgts":ƵX“&'n&fX¨f“</script><script>    args=[]</script><script src="https://themoonisacheese.github.io/snippeterpreter/snippet.js" type="module"/>

answeredJul 16 at 18:42
Themoonisacheese's user avatar
\$\endgroup\$
-3
\$\begingroup\$

Vyxal 3, 426 bytes

"ƵvϢwξᏜ]:ʎB⌊ḧ⊣≛¤Þt³▲∻X↸⑤⨪»∨+Π⍰⍨£«pdϾJʈ∺⑶⑵+S∨½ℳ3⑴K≛#◌]8ɾ⎊5↜⊠TĠ! √Q⇧ʁᴥĿ†lṪ⇄kɠ¿★⊐⤺≛⁜⧢,z⇩⎙æ⊣~⊍0ᴥ⑶r⁰¿Ꮠ2∨aAᐵϾʈ ▦⊖ξʁ½£⊞O>¤‹Ꮠ÷⇩≥±!÷⎋①^≠Zᛞℂ.∺²*:⧢3★↯Ͼ⍾Jw<⍰B☷'p≤⇧ġ!‰^≥x≠∦▲d⧖l⌹⎙③Sδ⇧+≡H①{Ka,¹★a⌊xs@¶o6⑥⎋o⩔≈XᑂᏐ1γ|B5λ⧢[g⤻±?ᐵlQƵℳ½σ6∪yæℂR&ġ⇄⍨w⑦j⊖⁜℗Ɠ⎋ᐵḧλ<o⊞Ŀ☷≥☷⎄Oσᛞhʁ↝⦰☷ƛ②◌δ≊f℈9⑥⇩ŁWṬ⎄⚅>⍢ᴥĿD≥ᛞ⍨≥≜ɾ⎇-Þ⎘γ③kĿ¤ϢΠU⟒⑥↺{7±Ẅ▲^÷q•④δ*★⍢ᑂ∺øδ!›↝≓Ꮠ¥≊w⊖⎘@⍢℈¬S⍨)ʁƶ⊞ꜝ⧖Ġ u◌¨⇧⇧JVɠɾ⏚※×⎄ᑂṪ⍨γ½0⎙u⊞r(∧yʀĠ£⑷∩ξt⏚¥⍨¥.Q{U↝⌈⎂t⇄ḧᏐR∑Ƶ⎂Fġ⑶⧢j⑧D⊖r^ʁv⧖⑥,⊍↯|⎇ᏜFff∻¤∨Þ⍨<»øʈ«×-bʀƛ”⌈

Vyxal It Online!

Simply a compressed string containing the first 200 words in the short dictionary that also appear in the wordnik list.

answeredJul 11 at 4:24
lyxal's user avatar
\$\endgroup\$
4
  • 1
    \$\begingroup\$Vyxal 3, 423 bytes:Vyxal It Online! first 200 common words by length\$\endgroup\$CommentedJul 11 at 7:06
  • 1
    \$\begingroup\$@Themoonisacheese that's interesting, I would have thought that taking words in order from the short dictionary would have been shorter.\$\endgroup\$CommentedJul 11 at 7:14
  • 1
    \$\begingroup\$Interesting that a language specifically developed for code golf is by far the worst!\$\endgroup\$CommentedJul 11 at 20:30
  • 5
    \$\begingroup\$Sorry, lyxal, I felt I had to downvote this 'cause it shows no effort. I know you were probably going for a baseline score but I also know Vyxal is well able to batter Japt at challenges like this.\$\endgroup\$CommentedJul 11 at 20:59

Your Answer

More generally…

  • …Please make sure to answer the question and provide sufficient detail.

  • …Avoid asking for help, clarification or responding to other answers (use comments instead).

Draft saved
Draft discarded

Sign up orlog in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

By clicking “Post Your Answer”, you agree to ourterms of service and acknowledge you have read ourprivacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.