Inspirado y en memoria de nuestro querido genio,
Q.E.P.D
Él inventó e implementó dfns - su obra magna y el objeto de la impugnación.
Para los interesados: la última documentación completa de dfns y videos con John .
Tarea
Dado un código fuente ASCII, responda a cuál de las siguientes cuatro categorías pertenece:
Dopda diádica
Dop monádico
Dfn
Otro
Puede devolver cuatro valores consistentes, pero indique su asignación si no es obvio.
Detalles
Puede suponer que el código fuente siempre comienza con una llave de apertura {
y termina con una llave de cierre }
.
Pueden ocurrir llaves anidadas recursivamente (p {{{}}}
. Ej. ), Pero las categorías 1–3 nunca pueden tener una profundidad de anidación de {}{}
llaves debajo de 1 (también lo es "Otro") y todas las llaves deben estar equilibradas (también lo {{}
es "Otro").
Se ignoran los caracteres en los siguientes contextos en una línea:
A la derecha de
#
(un comentario):significant#ignored
Entre comillas simples
'
...'
(es decir, en una cadena):significant'ignored'significant
(Esto se aplica a#
demasiado:'#'significant
)A la derecha de una cotización no
'
emparejada (emparejamiento de cotizaciones de la izquierda):significant'ignored
En el nivel uno de llaves (es decir, excluyendo llaves anidadas):
Los dops diádicos contienen la frase ininterrumpida
ww
Dops monádicos no contienen
ww
, pero contienenaa
Dfns no contienen
ww
niaa
Casos de prueba
DOPs diádicos
{ww}
{
www
}
{
''ww'
}
{aa
ww}
{'#''#'ww?aa}
Dops monádicos
{aa}
{aaaa}
{aa{ww}'ww'}
{w#w'
aa'
}
{aaw*w}
{w'\'aa\''}
Dfns
{}
{a a}
{aA}
{
{aa}
}
{w
w''w#
w}
{{
}}
{w\'aa\'}
Otro
{}{}
{{}
{}}
{ww}}
{}
{}
{ww}{}
{#}
{'
'}
{'#\'ww?aa'}
-> ¿otro?)
''
(el apóstrofe en la cadena, también se puede analizar como dos cadenas adyacentes para este desafío)?
'abc''def'
se analiza como una o dos cadenas para este desafío.