> Input
> Input
>> 1²
>> (3]
>> 1%L
>> L=2
>> Each 5 4
>> Each 6 7
>> L⋅R
>> Each 9 4 8
> {0}
>> {10}
>> 12∖11
>> Output 13
Experimente online!
∅
Como funciona
Sem surpresa, ele funciona quase de forma idêntica à maioria das outras respostas: gera uma lista de números e verifica cada um quanto ao módulo inverso com o argumento.
Se você estiver familiarizado com o funcionamento da estrutura do programa Whispers, fique à vontade para pular para a linha horizontal. Caso contrário: essencialmente, o Whispers funciona em um sistema de referência linha por linha, iniciando na linha final. Cada linha é classificada como uma das duas opções. Ou é uma linha sem linha ou é uma linha de operador .
As linhas Nilad começam com >
, como > Input
ou, > {0}
e retornam o valor exato representado nessa linha, ou seja, > {0}
retorna o conjunto{ 0 }> Input
>>
>> 1²
>> (3]
²
n → n2>> 1²
12
Geralmente, as linhas do operador funcionam apenas usando números como referências, mas você pode ter notado as linhas >> L=2
e>> L⋅R
. Esses dois valores L
e R
são usados em conjunto com Each
instruções. Each
As instruções funcionam usando dois ou três argumentos, novamente como referências numéricas. O primeiro argumento (por exemplo 5
) é uma referência a uma linha de operador que utiliza uma função, e o restante dos argumentos são matrizes. Em seguida, iteramos a função sobre a matriz, onde a L
e R
na função representam os elementos atuais nas matrizes que estão sendo iteradas. Como um exemplo:
A = [ 1 , 2 , 3 , 4 ]B = [ 4 , 3 , 2 , 1 ]f( x , y) = x + y
> [1, 2, 3, 4]
> [4, 3, 2, 1]
>> L+R
>> Each 3 1 2
Each
C= [ ( 1 , 4 ) , ( 2 , 3 ) , ( 3 , 2 ) , ( 4 , 1 ) ]f( x , y)D = [ f( 1 , 4 ) , f( 2 , 3 ) , f( 3 , 2 ) , f( 4 , 1 ) ] = [ 5 , 5 , 5 , 5 ]
Experimente online!
Como este código funciona
Trabalhando contra-intuitivamente como o Whispers funciona, começamos pelas duas primeiras linhas:
> Input
> Input
xyx2A : = [ 1 . . . x2]
>> 1%L
>> L=2
>> Each 5 4
>> Each 6 7
>> Each 5 4
B : = [ i%x|eu ∈ A ]uma%bumab
>> Each 6 7
BC: = [ ( i%x ) = y|eu ∈ A ]
x = 5 , y= 2A = [ 1 , 2 , 3 , . . . , 23 , 24 , 25 ]B = [ 0 , 1 , 2 , 1 , 0 , 5 , 5 , . . . , 5 , 5 ]C= [ 0 , 0 , 1 , 0 , 0 , . . . , 0 , 0 ]
Em seguida, pulamos para
>> L⋅R
>> Each 9 4 8
Each
>> L⋅R
UMACUMACE
EEu= { 0UMAEuCEu= 0CEu= 1
0 0xy0 0>> {10}
{ 0 }