Preludeは難解なプログラミング言語であり、有効なプログラムを構成するものに対する制限はほとんどありませんが、珍しいものです。印刷可能なASCIIテキストの任意のブロック(「ブロック」は、印刷可能なASCIIの行が改行で区切られることを意味します-0x0A)は、次の条件が満たされている場合に有効です:
- テキストのすべての(垂直)列には、
(
およびのいずれかが含まれます)
。 - 垂直位置を無視して、
(
と)
はバランスがとれています。つまり、それぞれ(
と)
その右側の1つだけがペアになり、その逆も同様です。
印刷可能なASCIIと改行を含む文字列を指定して、それが有効なPreludeプログラムを構成するかどうかを決定するプログラムまたは関数を記述します。STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を受け取ることができます。選択した2つの固定された 真偽値を使用して、結果を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行に1つだけではいけませんか?