람다 사용법을 이해하는 동안 포스터는 람다를 사용하여 할 수있는 일이 없다고 한 번 대답했습니다. 일반적인 기능을 사용하면 할 수 없습니다.람다를 Python의 일반 함수로 변환
저는 파이썬에서 전문가가 아닌 함수를 호출하기 위해 열심히 노력했지만 아직 배우고 있습니다. 재귀 함수를 사용해야하는 몇 가지 문제에 직면했습니다. 특정 답변.
사람이 람다 함수를 사용하여 그것을 이해하려고했지만 실패 했으므로 함수가 정상 함수를 사용하여 구현 될 수 있다면 그 점에서 람다를 이해하기가 더 쉬울 것입니다. .
이의 예를 들어이 문장을 보자 : 이것은 페이스 북 해커 컵에 사용 된print"\n".join(" ".join([(lambda f:(lambda x:f(lambda*r:x(x)(*r)))(lambda x:f(lambda*r:x(x)(*r))))(lambda f:lambda q,n:len(q)<=n and q or f(q[len(q)/2:],n)+f(q[:len(q)/2],n))(k,z+1)for z,k in enumerate(i[:-1].split())]) for i in list(s)[1:])
내가 루프에 분실되었다, 나는이 문제를 해결할 수 있습니다.
이 문장은 몇 마디 소요,의 말을하자 "유래 바위와는 중대하다"
페이스 북의 문제 설명은 다음과 같습니다
당신은 재미 있고 바보를 사용하여 암호화 전송의 시리즈를 차단했습니다 메서드를 사용하여 해독 할 수 있습니다. 메시지는 공백과 소문자 영문 문자 만 포함하며 다음과 같이 암호화됩니다. 문장의 모든 단어에 대해 i 번째 단어 (1 기반)는 다음 재귀 작업 f (word, i)를 적용하여 생성 된 단어로 바뀝니다. :
단어의 길이가 i보다 작거나 같으면 단어를 반환합니다. 그렇지 않으면 f (단어의 오른쪽 절반, i) + f (단어의 왼쪽 절반, i)를 반환하십시오.
단어의 길이가 홀수 인 경우 오른쪽이 길어 지도록 분할됩니다. 메시지를 보내는 사람이라면 누구나 쉽게 재미있게 놀고, 사용중인 것과 동일한 스타일로 암호화 된 메시지를 브로드 캐스트하기로 결정했습니다.
입력 입력은 정수 N으로 시작하고 줄 바꿈, N 테스트 사례로 시작됩니다. 각 사례는 공백과 소문자 만 포함 된 암호화되지 않은 문장으로 구성되며, 사례는 줄 바꿈으로 구분됩니다. 한 문장 안에 선행 또는 후행 공백이 없으며 인접 문자 사이에 최대 하나의 공백 문자가 있습니다.
출력 출력 각각의 경우와 줄 바꿈으로 구분하여 출력 한 후 암호화 된 문장의 내용 인코딩 방법은 위에 설명되어 있습니다. 전통적인 대소 문자 규칙을 무시하고 모든 소문자를 고수 할 수 있습니다.
제약 조건 5 ≤ N ≤ 25 문장은 100자를 초과 할 수 없습니다.
흥미로운 문제 (페이스 북에서 나온 것). 문제 (솔루션을 이해하는 문제)는 n 배 중첩 된 람다, 지나치게 긴 줄, 짧은 이름 및 기타 많은 것들이 그것을 읽을 수없는 혼란으로 만듭니다. – delnan
당신이 인용 한 예제는 실제 세계에서 온 것이 아니며 질문을하지 않아도됩니다 ... –
이것은 람다와 관련이 없으며 언롤 코드 난독 화와 더 관련이 있습니다. – Falmarri