Skip to content

Instantly share code, notes, and snippets.

@ToJans
Last active August 29, 2015 14:14
Show Gist options
  • Save ToJans/5e232437c4c64f8c5a25 to your computer and use it in GitHub Desktop.
Save ToJans/5e232437c4c64f8c5a25 to your computer and use it in GitHub Desktop.
99 bottles of beer as short as possible in ECMAScript 6 - currently 142 characters
x=""
b=r=>`${c||"No more"} bottle${c-1?"s":""} of beer${r&&c--||" on the wall"}
`
for(c=99;c;)x+=b()+b(1)+`Take one down, pass it around
`+b()
@tcoopman
Copy link

tcoopman commented Feb 3, 2015

159:

b=(c,r)=>`${c||"No more"} bottle${c-1?"s":""} of beer${r?"":" on the wall"}`,v=c=>!c||`${b(c)}
${b(c,1)}
Take one down, pass it around
${b(--c)}
${v(c)}`
v(99)

@ToJans
Copy link
Author

ToJans commented Feb 3, 2015

154:

x=""
for(c=99;c;){
b=r=>`${c||"No more"} bottle${c-1?"s":""} of beer${r?c--||"":" on the wall"}`
x+=b()+`
${b(c)}
Take one down, pass it around
${b()}
`}x

@abdullin
Copy link

abdullin commented Feb 3, 2015

Do you even need to declare x=""?

@tcoopman
Copy link

tcoopman commented Feb 3, 2015

@abdullin yeah, ReferenceError

@tcoopman
Copy link

tcoopman commented Feb 3, 2015

152:

b=r=>`${c||"No more"} bottle${c-1?"s":""} of beer${r?c--||"":" on the wall"}`,x=""
for(c=99;c;)x+=b()+`
${b(1)}
Take one down, pass it around
${b()}
`
x

@tcoopman
Copy link

tcoopman commented Feb 3, 2015

150 (don't need the x at the end to print)

b=r=>`${c||"No more"} bottle${c-1?"s":""} of beer${r?c--||"":" on the wall"}`,x=""
for(c=99;c;)x+=b()+`
${b(1)}
Take one down, pass it around
${b()}
`

@tcoopman
Copy link

tcoopman commented Feb 3, 2015

148 (forgot an easy one)

b=r=>`${c|"No more"} bottle${c-1?"s":""} of beer${r?c--|"":" on the wall"}`,x=""
for(c=99;c;)x+=b()+`
${b(1)}
Take one down, pass it around
${b()}
`

@ToJans
Copy link
Author

ToJans commented Feb 3, 2015

147 - almost tweetable!

x=""
for(c=99;c;)
b=r=>`${c||"No more"} bottle${c-1?"s":""} of beer${r?c--||"":" on the wall"}
`,x+=b()+b(1)+`Take one down, pass it around
`+b()
x

@tcoopman
Copy link

tcoopman commented Feb 3, 2015

@ToJans don't forget to change || by |

@ToJans
Copy link
Author

ToJans commented Feb 3, 2015

142 chars!

x=""
b=r=>`${c|"No more"} bottle${c-1?"s":""} of beer${r?c--|"":" on the wall"}
`
for(c=99;c;)x+=b()+b(1)+`Take one down, pass it around
`+b()

@ToJans
Copy link
Author

ToJans commented Feb 3, 2015

You can't change || by |, or the last sentence is wrong; so back to 143 chars...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment