소개 및 크레딧
멋진 전주가없는 오늘날 : 구현하십시오 takewhile.
이것의 변형 (사소한 데이터 구조에서)은 대학 기능 프로그래밍 과정에서 과제였습니다. 이 과제는 이제 마감되었으며 수업 시간에 논의되었으며 교수님이 여기에 게시 할 수있는 권한이 있습니다 (명백하게 요청했습니다).
사양
입력
입력은 양의 정수 목록 (또는 언어의 동등한 개념)이됩니다.
산출
출력은 양의 정수로 된 목록 (또는 언어의 동등한 개념)이어야합니다.
무엇을해야합니까?
당신의 임무는 takewhile고려중인 숫자가 짝수라는 것을 전제 로 구현하는 것입니다 (언어 내장 허용).
따라서 목록을 처음부터 끝까지 반복하고 조건 (짝수)이 유지되는 동안 출력 목록에 복사하고 조건을 충족시키지 않는 요소에 도달하자마자 작업과 출력을 중단합니다. (단계별 예제는 다음과 같습니다). 이 고차 기능을 takeWhile ( takewhile) 이라고도 합니다.
잠재적 코너 케이스
입력 목록과 비교하여 출력 목록의 순서는 변경되지 않을 수 있습니다 (예 : [14,42,2]되지 않음) [42,14].
빈 목록은 유효한 입출력입니다.
누가 이겼어?
이것은 코드 골프이므로 바이트 단위의 최단 답변이 이깁니다!
물론 표준 규칙이 적용됩니다.
테스트 벡터
[14, 42, 2324, 97090, 4080622, 171480372] -> [14, 42, 2324, 97090, 4080622, 171480372]
[42, 14, 42, 2324] -> [42, 14, 42, 2324]
[7,14,42] -> []
[] -> []
[171480372, 13, 14, 42] -> [171480372]
[42, 14, 42, 43, 41, 4080622, 171480372] -> [42, 14, 42]
단계별 예
Example Input: [42, 14, 42, 43, 41, 4080622, 171480372]
Consider first element: 42
42 is even (21*2)
Put 42 into output list, output list is now [42]
Consider second element: 14
14 is even (7*2)
Put 14 into output list, output list is now [42,14]
Consider third element: 42
42 is even (21*2)
Put 42 into output list, output list is now [42,14,42]
Consider fourth element: 43
43 is not even (2*21+1)
Drop 43 and return the current output list
return [42,14,42]


통역사가 화살표를 따라 '#'을 건너 갈 때 지시를 건너 뜁니다.