Creating a function over multiple lines
35 Lines
f=
0[
c=
'\
c\
o\
n\
s\
t\
r\
u\
c\
t\
o\
r'
][
c]
`
r\
e\
t\
u\
r\
n\
'\
b\
a\
r\
b\
a\
r\
i\
a\
n'
`
Try it online!
Uses the fact that 0
is a number, the constructor of 0
is Number
, and the constructor of Number
is Function
.
32 Lines
0[
c=
'\
c\
o\
n\
s\
t\
r\
u\
c\
t\
o\
r'
][
c]
`
f=
_\
=>
'\
b\
a\
r\
b\
a\
r\
i\
a\
n'
`(
)
Try it online!
This essentially runs
Function(`
f=
_=>
'barbarian'`)()
which uses the IIFE structure. Added bonus is that we can line-break some parts in the function body to reduce the line count.
24 Lines
f=
''
[
'\
t\
r\
i\
m'
][
'\
b\
i\
n\
d'
]`
b\
a\
r\
b\
a\
r\
i\
a\
n`
Try it online!
Inline version:
f=''['trim']['bind']`
barbarian`
Since all we want is to return a string, we can get away with a string method bound to a string. By using trim
, we can also safely leave a beginning newline.
Here is a 38 line solution:
f=
[]
[
'\
m\
a\
p'
][
'\
c\
o\
n\
s\
t\
r\
u\
c\
t\
o\
r'
]`
r\
e\
t\
u\
r\
n\
'\
b\
a\
r\
b\
a\
r\
i\
a\
n\
'`
It creates a function using the Function
constructor, which it accesses from [].map.constructor
using subscript notation ([]['map']['constructor']
). This is the method JSFuck uses to create functions.