SStackSundial
Spațiu de programare cu AI

Aritmetică postfixată limitată

Evaluează între unu și 100 de tokenuri postfixate cu întregi limitați și operatorii +, -, * și //.

● ● ●StackSundial●
Fluxuri de lucru · Aritmetică postfixată limitată ×
def postfix_value(tokens):
    tokens = tuple(tokens)
    if not 1 <= len(tokens) <= 100:
        raise ValueError("tokens.limit")
    stack = []
    for token in tokens:
        if type(token) is int and abs(token) <= 1000000000:
            stack.append(token)
            continue
        if type(token) is not str or token not in ("+", "-", "*", "//") or len(stack) < 2:
            raise ValueError("token.invalid")
        right, left = stack.pop(), stack.pop()
        if token == "//" and right == 0:
            raise ValueError("division.zero")
        value = (left + right if token == "+" else left - right if token == "-" else left * right if token == "*" else left // right)
        if abs(value) > 10**18:
            raise ValueError("result.range")
        stack.append(value)
    if len(stack) != 1:
        raise ValueError("stack.remainder")
    return stack[0]
✳Evaluează între unu și 100 de tokenuri postfixate cu întregi limitați și operatorii +, -, * și //.
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
Proiect
Verifică împărțirea negativă rotunjită în jos și respinge împărțirea la zero, stiva incompletă sau module intermediare peste 10**18.
Verifică înainte de aplicare
Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
Modele
Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
Fluxuri de lucru

Aritmetică postfixată limitată

Fluxuri de lucru ↗
Fluxuri de lucru
def postfix_value(tokens):
    tokens = tuple(tokens)
    if not 1 <= len(tokens) <= 100:
        raise ValueError("tokens.limit")
    stack = []
    for token in tokens:
        if type(token) is int and abs(token) <= 1000000000:
            stack.append(token)
            continue
        if type(token) is not str or token not in ("+", "-", "*", "//") or len(stack) < 2:
            raise ValueError("token.invalid")
        right, left = stack.pop(), stack.pop()
        if token == "//" and right == 0:
            raise ValueError("division.zero")
        value = (left + right if token == "+" else left - right if token == "-" else left * right if token == "*" else left // right)
        if abs(value) > 10**18:
            raise ValueError("result.range")
        stack.append(value)
    if len(stack) != 1:
        raise ValueError("stack.remainder")
    return stack[0]
Spațiu de programare cu AI

Definește ce poate face o expresie înainte de a-i modifica analizorul

Tratarea expresiilor necesită limite clare chiar și când limbajul este mic. StackSundial este un spațiu de programare cu IA pentru Windows în care poți discuta aceste limite alături de fișierele sursă. Deschide proiectul și cere modelului conectat să inspecteze tokenurile acceptate, regulile de evaluare și tratarea erorilor din apelant înainte de a propune o modificare a implementării.

O sarcină posibilă este revizuirea unui evaluator postfixat folosit de un ecran intern de calcul. Precizează operatorii permiși, limitele numerice și răspunsul la expresii incorect formate. Cere asistentului să identifice unde sunt impuse aceste cerințe și să propună modificări punctuale acolo unde lipsesc. Astfel, conversația privește mentenanța software-ului, nu doar generarea unui alt evaluator.

Revizuiește căile de respingere cu aceeași atenție ca aritmetica reușită. Rulează verificările proiectului pentru operanzi lipsă, rezultate în plus, împărțire la zero și valori dincolo de limitele permise. Inspectează ordinea operanzilor în operațiile necomutative și confirmă că apelantul primește eroarea dorită. Nu accepta o buclă de evaluare mai scurtă dacă slăbește contractul din jurul ei.

StackSundial acceptă conexiuni la endpointuri compatibile cu OpenAI sau Anthropic. Acolo unde este disponibil, alege un model IA abliterat, ținând cont că restricțiile, limitele de context și instrumentele depind de serviciul selectat. Codul propus rămâne un punct de pornire pentru inspecție și propria verificare, nu o dovadă că interpretorul este gata.

Înainte de a accepta o modificare a evaluatorului

Ce reguli trebuie incluse în descrierea sarcinii?

Precizează tokenurile permise, tipurile operanzilor, limitele numerice și comportamentul la erori. Include apelantul care prezintă eșecurile utilizatorilor. Fără aceste reguli, o propunere poate calcula corect exemple obișnuite, acceptând totuși expresii pe care aplicația trebuia să le respingă.

De ce să testez explicit scăderea și împărțirea?

Rezultatele lor depind de ordinea operanzilor, spre deosebire de adunare în cazurile obișnuite. Folosește cazuri cu rezultate vizibil diferite când operanzii sunt inversați. Verifică atât convenția împărțirii cerută de proiect, cât și răspunsul la un divizor zero.

Ar trebui expresiile incorect formate să returneze zero?

Doar dacă aceasta este o cerință explicită a aplicației. O valoare numerică de rezervă plauzibilă poate ascunde intrarea greșită. Cere asistentului să păstreze o cale clară de respingere și inspectează cum distinge apelantul un rezultat zero valid de o eroare.

Poate doar limita tokenurilor să limiteze evaluarea?

Revizuiește toate limitele cerute de proiect, inclusiv valorile intermediare și structura acceptată a intrării. Numărul tokenurilor răspunde doar unei părți a contractului. Testează căile relevante de respingere după orice modificare a buclei de evaluare.

Descarcă pentru Windows ↗

StackSundial · Actualizat 2026-10-25