Inspirado e em memória de nosso amado gênio,
DESCANSE EM PAZ
Ele inventou e implementou dfns - sua magnum opus e o assunto do desafio.
Para os interessados: última documentação completa do dfns e vídeos com John .
Tarefa
Dado um código-fonte ASCII, responda a qual das quatro categorias a seguir pertence:
Díada diádica
Dop monádico
Dfn
De outros
Você pode retornar quatro valores consistentes, mas indique seu mapeamento se não for óbvio.
Detalhes
Você pode assumir que o código-fonte sempre começa com uma chave de abertura {e termina com uma chave de fechamento }.
Os chaves aninhados recursivamente podem ocorrer (por exemplo {{{}}}), mas as categorias 1 a 3 nunca podem ter profundidade de aninhamento de chaves abaixo de 1 (o que {}{}é "Outro") e todas as chaves devem ser equilibradas (o que {{}é "Outro").
Os caracteres nos seguintes contextos em uma linha são ignorados:
À direita de
#(um comentário):significant#ignoredEntre aspas simples
'...'(ou seja, em uma string):significant'ignored'significant(Isto aplica-se#também:'#'significant)À direita de uma cotação não
'emparelhada (emparelhamento de cotações da esquerda):significant'ignored
No aparelho de fixação nível 1 (ou seja, excluindo aparelhos aninhados):
Dops diádicos contêm a frase ininterrupta
wwDops monádicos não contêm
ww, mas contêmaaDfns não contêm
wwnemaa
Casos de teste
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\'}
De outros
{}{}
{{}
{}}
{ww}}
{}
{}
{ww}{}
{#}
{'
'}
{'#\'ww?aa'}-> outro?)
''(apóstrofo na corda, também pode ser analisado como duas cordas adjacentes para este desafio)?
'abc''def'é analisado como uma ou duas seqüências para esse desafio.
