여러 줄에 걸쳐 함수 만들기


9

여러 줄에 걸쳐 함수를 만들려고합니다.

도전의 매개 변수 :

  1. 함수는 'barbarian'을 반환
  2. 한 줄에 2 자만
  3. 최대 40 줄 뚱뚱한 화살표를 사용하여 내 기능을 선언하려고하지만 팻 화살표가 연결되어 있지 않으면 작동하지 않는 것 같습니다.

도전의 근원 : https://www.codewars.com/kata/multi-line-task-plus-plus-hello-world

내 현재 작품 :

f=
(
)=>

'\
b\
a\
r\
b\
a\
r\
i\
a\
n\
s\
'

이것은 작동하지만 ') =>'의 길이는 3 자입니다. 실제로 함수 생성을 확장 할 수있는 방법을 알고 싶습니다. 실용적이지 않기 때문에 어디에서나 정보를 찾을 수 없습니다.



2
PPCG에 오신 것을 환영합니다! 불행히도,이 도전은 객관적인 승리 기준이 없으며, 수정 될 때까지이 도전을 끝내기로 투표합니다. 나중에 샌드 박스 를 사용 하여 질문을 게시하기 전에 피드백을 받으십시오.
FantaC

또한 스택 오버플로는 다른 말로하면, 이것에 대한 더 나은 곳이 될 것입니다
FantaC

5
나는 이것이 특정 코드 문제를 해결하고 다시 열기로 투표 한 팁을 묻는 질문으로 괜찮다고 생각합니다.
Laikoni

6
Laikoni는 이것이 SO와 같은 프로그래밍 질문을하는 것이 아니라 코드 레이아웃 제약 조건 (즉, 제한된 소스)을 다루는 것에 대한 조언을 요구하고 있음에 동의합니다.
xnor

답변:


7

38 라인 솔루션은 다음과 같습니다.

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\
'`

첨자 표기법 ( ) Function[].map.constructor사용하여 액세스 하는 생성자를 사용하여 함수를 작성합니다 []['map']['constructor']. 이것은 JSFuck이 함수를 만드는 데 사용하는 방법입니다.


[]['map']['constructor']대신에 액세스 하지 []['sum']['constructor']않습니까?
Jonathan Frech

내가 이것을 잘못 읽지 않으면, 그것은 '야만인'복수를 반환합니까?
cole

1
@cole 질문의 문제 진술과는 반대로 질문의 시도는 복수형을 출력하는 것으로 보입니다.
Jonathan Frech

> _ <죄송합니다 오타
ASCII 전용

대단해! 더 적은 줄로 줄이려면 어떤 방법이 있습니까? 이것이 내가 생성자에 대해 들어 본 첫 번째이기 때문에이 시점에서 궁금합니다.
theNewfelll

14

35 줄

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'
`

온라인으로 사용해보십시오!

사실 사용 0수의 생성자 0입니다 Number, 그리고 생성자 Number입니다 Function.

32 줄

0[
c=
'\
c\
o\
n\
s\
t\
r\
u\
c\
t\
o\
r'
][
c]
`
f=
_\
=>
'\
b\
a\
r\
b\
a\
r\
i\
a\
n'
`(
)

온라인으로 사용해보십시오!

이것은 본질적으로 실행

Function(`
f=
_=>
'barbarian'`)()

IIFE 구조 를 사용하는 . 추가 된 기능은 함수 본문의 일부를 줄 바꿈하여 줄 수를 줄일 수 있다는 것입니다.

24 줄

f=
''
[
'\
t\
r\
i\
m'
][
'\
b\
i\
n\
d'
]`
b\
a\
r\
b\
a\
r\
i\
a\
n`

온라인으로 사용해보십시오!

인라인 버전 :

f=''['trim']['bind']`
barbarian`

원하는 것은 문자열을 반환하는 것이므로 문자열에 바인딩 된 문자열 메서드를 사용하여 벗어날 수 있습니다. 를 사용 trim하면 시작 줄 바꿈을 안전하게 유지할 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.