Context engineering

Immagine
  Negli ultimi mesi, chi lavora con i modelli linguistici ha iniziato a notare uno spostamento sottile ma significativo: il problema non è più cosa scrivere nel prompt , ma cosa mettere nel contesto . È la differenza tra dare un'istruzione ben formulata e costruire l'intero ambiente informativo in cui un modello deve operare — memoria, strumenti, cronologia, vincoli, stato del sistema. Si parla ormai apertamente di context engineering come disciplina distinta dal prompt engineering, e la distinzione non è solo terminologica. 🔹 1. Il prompt come istruzione, il contesto come ambiente Un prompt ben scritto ottimizza una singola interazione. Il contesto, invece, è tutto ciò che il modello "vede" prima di rispondere: documenti recuperati, risultati di strumenti, conversazioni pregresse, regole di sistema, persino la cronologia di errori già commessi in quella sessione. Con l'adozione crescente di agenti che lavorano su compiti lunghi — scrivere codice, orchestrare...

Corso di JavaScript & Programmazione Web: 4 – Funzioni

4 – Funzioni

1. Definizione e richiamo di funzioni

Una funzione è un blocco di codice riutilizzabile che esegue un’operazione specifica.
Si definisce con la parola chiave function, seguita da un nome, eventuali parametri tra parentesi tonde e il corpo tra parentesi graffe.

📌 Sintassi base

function saluta() { console.log("Ciao mondo!"); } // Richiamo saluta();

➡️ Output:

Ciao mondo!

2. Parametri e valori di ritorno

Le funzioni possono ricevere parametri (input) e restituire un valore di ritorno (output) con la parola chiave return.

📌 Esempio

function somma(a, b) { return a + b; } let risultato = somma(5, 7); console.log(risultato);

➡️ Output:

12

3. Funzioni freccia (()=>{})

Introdotte in ES6, le funzioni freccia sono una sintassi più compatta, spesso usata con funzioni anonime o callback.

📌 Esempi

// Funzione classica function quadrato(x) { return x * x; } // Funzione freccia equivalente const quadratoArrow = (x) => x * x; console.log(quadrato(4)); // 16 console.log(quadratoArrow(4)); // 16

👉 Se il corpo contiene una sola istruzione, le graffe e return possono essere omessi.
👉 Attenzione: le funzioni freccia non hanno il proprio this, quindi si comportano diversamente in contesti di oggetti.

4. Scope delle variabili

Lo scope definisce la visibilità delle variabili:

  • Globale: dichiarata fuori da qualsiasi funzione → visibile ovunque.

  • Locale: dichiarata dentro una funzione → visibile solo lì.

  • Block scope (let, const): visibile solo all’interno delle parentesi graffe in cui è definita.

📌 Esempio

let globale = "Sono globale"; function esempioScope() { let locale = "Sono locale"; console.log(globale); // ✅ accessibile console.log(locale); // ✅ accessibile } esempioScope(); console.log(globale); // ✅ accessibile // console.log(locale); ❌ errore: locale non definita

5. Esercizio pratico – Funzione palindroma

Un palindromo è una parola che si legge uguale in avanti e indietro (es. "anna", "radar").

📌 Soluzione classica

function isPalindromo(parola) { let parolaInvertita = parola.split("").reverse().join(""); return parola === parolaInvertita; } // Test console.log(isPalindromo("anna")); // true console.log(isPalindromo("cane")); // false

📌 Soluzione con funzione freccia

const isPalindromo = (parola) => { return parola === parola.split("").reverse().join(""); }; console.log(isPalindromo("radar")); // true

6. Sintesi concettuale

  • Le funzioni permettono di organizzare e riutilizzare il codice.

  • Possono avere parametri in ingresso e valori di ritorno in uscita.

  • Le funzioni freccia rendono la sintassi più compatta, ma hanno differenze con this.

  • Lo scope regola la visibilità delle variabili.

  • Applicazione pratica: controllo di palindromi.

Commenti

Post popolari in questo blog

Corso di Programmazione Strutturata e OOP: 3 Ereditarietà incapsulamento polimorfismo

Corso di CSS & Web Design: 3 – Box Model e spaziature

Corso di CSS & Web Design: 7 – Responsive Design