> 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 > Inputou, > {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=2e>> L⋅R . Esses dois valores Le Rsão usados em conjunto com Eachinstruções. EachAs 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 Le Rna 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
EachC= [ ( 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 4B : = [ i%x|eu ∈ A ]uma%bumab
>> Each 6 7BC: = [ ( 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⋅RUMACUMACE
EEu= { 0UMAEuCEu= 0CEu= 1
0 0xy0 0>> {10}{ 0 }