익명 접두사 람다. 프로그램 본문을 반환합니다.
{
1=≢⍵:⍕⍵ ⍝ single element
(2=≢⍵)∧(⍵[2]=11×⍵[1]):⍕⍵[1] ⍝ 2, 22 etc.
1=≢∪⍵:'⊢',⍕⊃⍵ ⍝ all the same
(⊢≡⊃×⍳∘≢)⍵:'+',⍕⊃⍵ ⍝ linear
((⌊=⊢)!⍣¯1⊢⊃⍵)∧(1∧.=1↓⍵):'!',⍕!⍣¯1⊃⍵ ⍝ factorial followed by all 1s
(⍵[2]∧.=1↓⍵)∧(⍵[1]=10|2⊃⍵):(⍕⊃⍵),'⌈',(⊃⍕2⊃⍵) ⍝ b ab ab ab
e←{∊⍉2 2⍴'+×',⍕¨⍵}¨⍸(⊃⍵)=∘.×⍨⍳10
b←⍵∘≡¨e(({0::⍬ ⋄ ⍎⍵}¨,\)⍴∘⊂)¨⍨(≢⍵)
∨/b:⊃b/e
Q←{'''',⍨⍵/⍨1+''''=⍵}
(5∧.≤⍵)∧(≢⍕⍵)>6+(+/14=⍵)+≢⍵:'{⍺←⎕AV⍳⊃⋄1⌽⍺⊢⍵}''',Q ⎕AV[⍵] ⍝ string fallback
(≢⍕⍵)>9+(+/5=⍵)+≢⍵:'{⍺←¯4+⎕AV⍳⊃⋄1⌽⍺⊢⍵}''',Q ⎕AV[4+⍵] ⍝ offset string fallback
'{⍺←⊃⋄1⌽⍺⊢⍵}',⍕⍵ ⍝ fallback
}
온라인으로 사용해보십시오!
행동 양식
이것은 다양한 방법을 탐색하고 사용 가능한 첫 번째 방법을 반환하며 결국 보편적으로 적용 가능한 방법으로 돌아갑니다.
단일 요소
목록에 요소가 하나만 있으면 그대로 반환됩니다.
2, 22 등
한 자릿수를 반복하여 11 배 더 큰 숫자를 생성 할 수 있습니다.
모두 같은
가장 오른쪽 ( ⊢
) 번호 만 반환합니다 .
선의
f (n) = kxn 시퀀스는 첫 번째 항 앞에 플러스를 삽입합니다.
계승 다음에 모두 1
첫 번째 숫자 = N! m 이후의 숫자가 1 인 경우, 다음 !m
때문에 용액은 !m
N이고, m!m
1 및 !1
1이다.
b ab ab ab
모든 두 자리 숫자가 모든 한 자리 숫자보다 크기 때문에 첫 번째 숫자의 앞면이 두 번째 숫자의 뒷면에 붙어있는 연속 최대 값이 솔루션입니다.
3 줄 코드
형식의 수식 +a×b
이 유효한지 확인하십시오 .
문자열 대체
5 미만의 숫자가없는 긴 시퀀스 (4는 줄 바꿈이므로)는 SBCS의 문자로 인코딩 될 수 있습니다.
오프셋 문자열 대체
5 미만의 숫자가 있으면이를 피하기 위해 9 씩 증가시킵니다.
폴백
문자열 "{⍺←⊃⋄1⌽⍺⊢⍵}"
과 문자열 화 된 ( ⍕
) 입력 의 간단한 문자열 연결 . 예를 들어 [3,1,4]
프로그램 본문을 반환합니다 {⍺←⊃⋄1⌽⍺⊢⍵}3 1 4
.
중괄호 안의 부분은 모호한 함수이므로 접두사 함수 또는 접두사 함수일 수 있습니다. 따라서 가장 왼쪽 인스턴스는 접두사 모드로 실행되고 다른 모든 인스턴스는 접두사 모드로 실행됩니다. 모드 사이의 차이점 ⍺
은 왼쪽 인수를 나타내는 값 이 있는지 여부 입니다. 그렇지 않은 경우 기능이 할당됩니다 ⊃
(먼저).
대체 방법 설명
{
… }
익명의 람다 :
⍺←⊃
(더 왼쪽 인자가없는 경우 ⍺
) 기능 지정 ⊃
(첫 번째)에⍺
⋄
그때:
이 시점에서 다음 코드 ⍺
는 숫자 목록 (접두사 호출) 또는 함수 "first"(접두사 호출) 여부에 따라 서로 다른 두 가지를 의미합니다 .
경우 ⍺
숫자의 목록입니다 :
⍺⊢⍵
올바른 주장에 찬성하여 왼쪽 주장을 폐기
1⌽
한 단계 왼쪽으로 회전
경우는 ⍺
"최초의"기능입니다 :
⊢⍵
옳은 논쟁을 제기하다
⍺
그 첫 번째 요소를 선택
1⌽
한 단계 회전 (스칼라에서 작동하지 않음)
대체 방법 실행 예
3 1 4
코드를 실행 {⍺←⊃⋄1⌽⍺⊢⍵}3 1 4
하면 "first"함수가 ⍺
첫 번째 요소에 할당 되어 첫 번째 요소가 반환됩니다. 3
.
실행 {⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4
우단 람다 "캡처"왼쪽의 수 3 1 4
는 좌측 인수로하기 때문에, ⍺
대신에 폐기되는 값 갖는다 3 1 4
후 한 단계 좌측 및 수율을 회전하는 1 4 3
결과로한다. 그런 다음 가장 왼쪽의 람다에 대한 유일한 인수로 사용됩니다. 여기서 ⍺
"첫 번째"함수가되어 결과가 첫 번째 요소가됩니다. 1
.
실행 {⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4
가장 오른쪽 람다 "캡처"중앙 수 있습니다 3 1 4
다음 오른쪽 인수에 찬성 폐기의 왼쪽 인수로 3 1 4
왼쪽이 한 단계 회전 1 4 3
. 그런 다음 가장 3 1 4
왼쪽의 인수 와 함께 가운데 람다의 오른쪽 인수로 사용됩니다 . 왼쪽 인수는 오른쪽에 대해 버려지고 한 단계 왼쪽으로 회전합니다 4 3 1
. 이것은 가장 왼쪽에있는 람다의 유일한 인수가되므로 ⍺
"첫 번째 함수"가되어 첫 번째 요소를 반환합니다. 4
.
채점
실제 데이터를 사용 하여 테스트 할시기가 되면 이 테스트 하니스 (사전 테스트 데이터로 채워진 링크)를 사용하십시오. 테스트 사례는 입력 필드에 들어가고 출력은 모든 500 개 프로그램의 총 바이트 수입니다. (또한 오류가 발생하지만 나중에 입력을 그대로 평가하려고하기 때문입니다.)