Prelude 는 밀교 프로그래밍 언어로, 유효한 프로그램을 구성하는 것에 대한 제한은 거의 없지만 드문 경우입니다. 다음과 같은 경우 인쇄 가능한 ASCII 텍스트 블록 ( "블록"은 인쇄 가능한 ASCII 행이 줄 바꿈으로 구분됨을 의미 함)입니다.
- 텍스트의 모든 (수직) 열에는
(
과 중 하나만 포함됩니다)
. - 수직 위치를 무시하고
(
및)
균형을 잡습니다. 즉, 각각(
이)
오른쪽에 정확히 하나와 쌍을 이룹니다 .
인쇄 가능한 ASCII 및 줄 바꿈이 포함 된 문자열이 유효한 Prelude 프로그램을 구성하는지 확인하는 프로그램 또는 함수를 작성하십시오. STDIN (또는 가장 가까운 대안), 명령 행 인수 또는 함수 인수를 통해 입력을받을 수 있습니다. 선택한 고정 고정 / 거짓 값을 사용하여 결과를 STDOUT으로 반환하거나 인쇄 할 수 있습니다 .
입력이 직사각형이라고 가정 해서는 안됩니다 .
이것은 코드 골프이므로 가장 짧은 제출 (바이트)이 이깁니다.
예
유효한 Prelude 프로그램 은 다음과 같습니다 (사실 실제 Prelude 프로그램 임).
?1-(v #1)-
1 0v ^(# 0)(1+0)#)!
(#) ^#1-(0 #
1(# 1) v # - 1+)
vv (##^v^+
? v-(0 # ^ #)
?
1+ 1-!
그리고 여기에 많은 입력이 있으며, 모두 유효하지 않습니다 :
#(#(##)##)##(
)##(##(##)#)#
#(#)
)###
#(##
(##)
(##)
(#)#
(##)
(###
#(#)
(##)
#(#)
###)
#()#
()##
#(#)##
###
###(#)
)
과 2를 (
봅니다. 한 줄에 1이 아니어야합니까?