자바 스크립트 / Cubix, 36 바이트
//.!v+u;$I^@O<.Iu
a=>eval(a.join`-`)
시도 해봐!
자바 스크립트 기능은 아래 스 니펫을 사용하여 테스트 할 수 있으며 Cubix 프로그램은 여기에서 테스트 할 수 있습니다 .
어떻게 작동합니까?
자바 스크립트
첫 번째 줄은 두 개의 슬래시로 시작하기 때문에 JavaScript에 대한 줄 설명이므로 JavaScript는 맨 아래 줄 ( a=>eval(a.join`-`)) 만 볼 수 있습니다.이 줄 은 입력으로 배열을 가져 와서 그 사이에 빼기 부호로 결합한 다음 코드로 실행합니다. 배열 내의 모든 요소의 감산
let f=
//.!v+u;$I^@O<.Iu
a=>eval(a.join`-`)
console.log(f([1,2,3,4,5]))
console.log(f([3,1,4,1,5]))
큐빅스
Cubix는 다음 큐브를 보게됩니다 (Cubix가 모든 공백을 무시한다는 점에 유의하십시오).
/ / .
! v +
u ; $
I ^ @ O < . I u a = > e
v a l ( a . j o i n ` -
` ) . . . . . . . . . .
. . .
. . .
. . .
시작
IP는 세 번째 줄에서 시작하여 동쪽을 가리 킵니다. 'I'입력에서 숫자를 가져 와서 스택으로 푸시 하는 명령을 수행합니다. 그런 다음 '^'합계 루프로 리디렉션됩니다 .
합 루프
sum 루프의 일부가 아닌 모든 문자를 제거하고 no-ops ( '.') 로 바꿨습니다 . IP는 동쪽을 가리키면서 두 번째 줄에 처음 도착합니다.
. . .
! v +
u ; $
. . . . . . I u . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . .
. . .
. . .
먼저이 '!'명령은 상단 요소를 확인합니다. 이 경우 0(즉, 입력의 끝에 도달 한 경우 'v') 루프에서 IP를 반영하여 다음 명령어 ( )가 실행됩니다. 입력의 끝에 아직 도달하지 않은 경우 상위 두 항목을 함께 추가합니다 ( '+', 두 번째 항목은 해당 지점까지의 합계, 새 항목은 최상위 항목). 그런 다음 IP는 입방체의 다른면으로 'u'캐릭터 로 래핑되어 IP를 u 회전시키고 'I'북쪽을 가리키면서 명령을 실행합니다 (다른 입력 정수 읽기). IP는 윗면으로 돌아가서 '$'삭제 명령 ( ';')을 건너 뛰고 ( ) 다시 시작한 지점으로 다시 돌아갑니다.
끝
IP가 루프 밖으로 반영되면 다음 문자가 실행됩니다.
. . .
. v .
. ; .
. . @ O < . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . .
. . .
. . .
이 명령어는 상단 요소 (0)를 삭제 한 다음 상단 요소 (합)를 정수로 출력합니다. 그런 다음 '@'명령에 도달하여 프로그램이 종료됩니다.