5 added 61 characters in body
source | link

Moonscript - 118 117 112 110 105 10596 bytes

This needs to be saved as Latin 1, but generates utf-8. It uses the central limit theorem to approximate the normal distribution. math.random! returns a number with a uniform distribution 0 to 1, which has a mean of 0.5 and a standard deviation of 1/sqrt(12). If we add 300 samples, we get a number with a mean of 150 and a standard deviation of 5, with an approximately normal distribution. We subtract 140, and the distribution now has the correct mean.

In utf-8, the character codes U+300 to U+32F are encoded as 11001100:10000000 to 11001100:10101111. The character 'Ì' in Latin 1So it is 11001100, andthe byte 204 followed by a random byte 128 to 175 are 10000000 to 10101111.

r=math.random
print (...)\gsub=>@gsub '%a',(b=-140)=>
 b=b+r!for _=1,300
 @=@..@.char(204,127+r 48)for _=1,b
 @

To useThis is a code block which returns an anonymous function taking one argument, pass the desired string as, and returning the first argumentzalgo-fied version. Assuming this is saved in zalgo.moon, a full program that uses this would be:

> moonc zalgo.moon;print luarequire'zalgo' zalgoio.lua "the string"
t̛̫̫̩̗̩̗̎̇̍h̛̟̜̠̜̉̂̋̀̚e̪̍̃̈̈̑̒̕ s̢̝̍̋̉́̅̊̚t̞̞̫̒̎̍ŗ̨̜̥̣̙̭̓̏̀ǐ̞̇̆n̡̨̜̟̪̖̫̣̎̚g̠̬̈̆̋̇read!

Edit:

  • Turns out it's cheaper to use char code 204 instead of an embedded Latin 1 character.
  • Can access string.char using a.char
  • Switch to command line args, rather than stdin.
  • use method for implicit parameter @.
  • Switch to a function that returns a value

Moonscript - 118 117 112 110 105 bytes

This needs to be saved as Latin 1, but generates utf-8. It uses the central limit theorem to approximate the normal distribution. math.random! returns a number with a uniform distribution 0 to 1, which has a mean of 0.5 and a standard deviation of 1/sqrt(12). If we add 300 samples, we get a number with a mean of 150 and a standard deviation of 5, with an approximately normal distribution. We subtract 140, and the distribution now has the correct mean.

In utf-8, the character codes U+300 to U+32F are encoded as 11001100:10000000 to 11001100:10101111. The character 'Ì' in Latin 1 is 11001100, and 128 to 175 are 10000000 to 10101111.

r=math.random
print (...)\gsub '%a',(b=-140)=>
 b=b+r!for _=1,300
 @=@..@.char(204,127+r 48)for _=1,b
 @

To use, pass the desired string as the first argument.

> moonc zalgo.moon; lua zalgo.lua "the string"
t̛̫̫̩̗̩̗̎̇̍h̛̟̜̠̜̉̂̋̀̚e̪̍̃̈̈̑̒̕ s̢̝̍̋̉́̅̊̚t̞̞̫̒̎̍ŗ̨̜̥̣̙̭̓̏̀ǐ̞̇̆n̡̨̜̟̪̖̫̣̎̚g̠̬̈̆̋̇

Edit:

  • Turns out it's cheaper to use char code 204 instead of an embedded Latin 1 character.
  • Can access string.char using a.char
  • Switch to command line args, rather than stdin.
  • use method for implicit parameter @.

Moonscript - 118 117 112 110 105 96 bytes

This needs to be saved as Latin 1, but generates utf-8. It uses the central limit theorem to approximate the normal distribution. math.random! returns a number with a uniform distribution 0 to 1, which has a mean of 0.5 and a standard deviation of 1/sqrt(12). If we add 300 samples, we get a number with a mean of 150 and a standard deviation of 5, with an approximately normal distribution. We subtract 140, and the distribution now has the correct mean.

In utf-8, the character codes U+300 to U+32F are encoded as 11001100:10000000 to 11001100:10101111. So it is the byte 204 followed by a random byte 128 to 175.

r=math.random
=>@gsub '%a',(b=-140)=>
 b=b+r!for _=1,300
 @=@..@.char(204,127+r 48)for _=1,b
 @

This is a code block which returns an anonymous function taking one argument, the string, and returning the zalgo-fied version. Assuming this is saved in zalgo.moon, a full program that uses this would be:

print require'zalgo' io.read!

Edit:

  • Turns out it's cheaper to use char code 204 instead of an embedded Latin 1 character.
  • Can access string.char using a.char
  • Switch to command line args, rather than stdin.
  • use method for implicit parameter @.
  • Switch to a function that returns a value
4 added 288 characters in body
source | link

Moonscript - 118 117 112 110 112105 bytes

This needs to be saved as Latin 1, but generates utf-8. It uses the central limit theorem to approximate the normal distribution. math.random! returns a number with a uniform distribution 0 to 1, which has a mean of 0.5 and a standard deviation of 1/sqrt(12). If we add 300 samples, we get a number with a mean of 150 and a standard deviation of 5, with an approximately normal distribution. We subtract 140, and the distribution now has the correct mean.

In utf-8, the character codes U+300 to U+32F are encoded as 11001100:10000000 to 11001100:10101111. The character 'Ì' in Latin 1 is 11001100, and 128 to 175 are 10000000 to 10101111.

r=math.random
print io(.read!..)\gsub '%a',(a)->
 b=-140)=>
 b=b+r!for _=1,300
 a=a@=@..a@.char(204,r127+r 128,17548)for _=1,b
 a@

To use, pass the desired string as the first argument.

> moonc zalgo.moon; lua zalgo.lua "the string"
t̛̫̫̩̗̩̗̎̇̍h̛̟̜̠̜̉̂̋̀̚e̪̍̃̈̈̑̒̕ s̢̝̍̋̉́̅̊̚t̞̞̫̒̎̍ŗ̨̜̥̣̙̭̓̏̀ǐ̞̇̆n̡̨̜̟̪̖̫̣̎̚g̠̬̈̆̋̇

Edit:

  • Turns out it's cheaper to use char code 204 instead of an embedded Latin 1 character.
  • Can access string.char using a.char
  • Switch to command line args, rather than stdin.
  • use method for implicit parameter @.

Moonscript - 118 117 112 bytes

This needs to be saved as Latin 1, but generates utf-8. It uses the central limit theorem to approximate the normal distribution. math.random! returns a number with a uniform distribution 0 to 1, which has a mean of 0.5 and a standard deviation of 1/sqrt(12). If we add 300 samples, we get a number with a mean of 150 and a standard deviation of 5, with an approximately normal distribution. We subtract 140, and the distribution now has the correct mean.

In utf-8, the character codes U+300 to U+32F are encoded as 11001100:10000000 to 11001100:10101111. The character 'Ì' in Latin 1 is 11001100, and 128 to 175 are 10000000 to 10101111.

r=math.random
print io.read!\gsub '%a',(a)->
 b=-140
 b=b+r!for _=1,300
 a=a..a.char(204,r 128,175)for _=1,b
 a

Edit:

  • Turns out it's cheaper to use char code 204 instead of an embedded Latin 1 character.
  • Can access string.char using a.char

Moonscript - 118 117 112 110 105 bytes

This needs to be saved as Latin 1, but generates utf-8. It uses the central limit theorem to approximate the normal distribution. math.random! returns a number with a uniform distribution 0 to 1, which has a mean of 0.5 and a standard deviation of 1/sqrt(12). If we add 300 samples, we get a number with a mean of 150 and a standard deviation of 5, with an approximately normal distribution. We subtract 140, and the distribution now has the correct mean.

In utf-8, the character codes U+300 to U+32F are encoded as 11001100:10000000 to 11001100:10101111. The character 'Ì' in Latin 1 is 11001100, and 128 to 175 are 10000000 to 10101111.

r=math.random
print (...)\gsub '%a',(b=-140)=>
 b=b+r!for _=1,300
 @=@..@.char(204,127+r 48)for _=1,b
 @

To use, pass the desired string as the first argument.

> moonc zalgo.moon; lua zalgo.lua "the string"
t̛̫̫̩̗̩̗̎̇̍h̛̟̜̠̜̉̂̋̀̚e̪̍̃̈̈̑̒̕ s̢̝̍̋̉́̅̊̚t̞̞̫̒̎̍ŗ̨̜̥̣̙̭̓̏̀ǐ̞̇̆n̡̨̜̟̪̖̫̣̎̚g̠̬̈̆̋̇

Edit:

  • Turns out it's cheaper to use char code 204 instead of an embedded Latin 1 character.
  • Can access string.char using a.char
  • Switch to command line args, rather than stdin.
  • use method for implicit parameter @.
3 edited body
source | link

Moonscript - 118 117117 112 bytes

This needs to be saved as Latin 1, but generates utf-8. It uses the central limit theorem to approximate the normal distribution. math.random! returns a number with a uniform distribution 0 to 1, which has a mean of 0.5 and a standard deviation of 1/sqrt(12). If we add 300 samples, we get a number with a mean of 150 and a standard deviation of 5, with an approximately normal distribution. We subtract 140, and the distribution now has the correct mean.

In utf-8, the character codes U+300 to U+32F are encoded as 11001100:10000000 to 11001100:10101111. The character 'Ì' in Latin 1 is 11001100, and 128 to 175 are 10000000 to 10101111.

r=math.random
print io.read!\gsub '%a',(a)->
 b=-140
 b=b+r!for _=1,300
 a=a..stringa.char(204,r 128,175)for _=1,b
 a

Edit: Turns out it's cheaper to use char code 204 instead of an embedded Latin 1 character.

  • Turns out it's cheaper to use char code 204 instead of an embedded Latin 1 character.
  • Can access string.char using a.char

Moonscript - 118117 bytes

This needs to be saved as Latin 1, but generates utf-8. It uses the central limit theorem to approximate the normal distribution. math.random! returns a number with a uniform distribution 0 to 1, which has a mean of 0.5 and a standard deviation of 1/sqrt(12). If we add 300 samples, we get a number with a mean of 150 and a standard deviation of 5, with an approximately normal distribution. We subtract 140, and the distribution now has the correct mean.

In utf-8, the character codes U+300 to U+32F are encoded as 11001100:10000000 to 11001100:10101111. The character 'Ì' in Latin 1 is 11001100, and 128 to 175 are 10000000 to 10101111.

r=math.random
print io.read!\gsub '%a',(a)->
 b=-140
 b=b+r!for _=1,300
 a=a..string.char(204,r 128,175)for _=1,b
 a

Edit: Turns out it's cheaper to use char code 204 instead of an embedded Latin 1 character.

Moonscript - 118 117 112 bytes

This needs to be saved as Latin 1, but generates utf-8. It uses the central limit theorem to approximate the normal distribution. math.random! returns a number with a uniform distribution 0 to 1, which has a mean of 0.5 and a standard deviation of 1/sqrt(12). If we add 300 samples, we get a number with a mean of 150 and a standard deviation of 5, with an approximately normal distribution. We subtract 140, and the distribution now has the correct mean.

In utf-8, the character codes U+300 to U+32F are encoded as 11001100:10000000 to 11001100:10101111. The character 'Ì' in Latin 1 is 11001100, and 128 to 175 are 10000000 to 10101111.

r=math.random
print io.read!\gsub '%a',(a)->
 b=-140
 b=b+r!for _=1,300
 a=a..a.char(204,r 128,175)for _=1,b
 a

Edit:

  • Turns out it's cheaper to use char code 204 instead of an embedded Latin 1 character.
  • Can access string.char using a.char
2 added 132 characters in body
source | link
1
source | link