Buongiorno Guido, caveat per i lettori casuali: questo messaggio è molto tecnico _e_ molto filosofico, troppo per addetti ai lavori, credo :-D Guido Vetere <vetere.guido@gmail.com> writes:
[MODE=PROVOCATION, CONTENT=spiega il concetto di imperativo categorico (Kant) a un informatico ]
[MODE=COUNTERPROVOCATION, CONTENT=spiega il concetto di funcional e logic programming a un informatico che programma in paiton] [...]
**Definizione Filosofica:** L'imperativo categorico è un principio fondamentale della filosofia morale di Immanuel Kant. È una regola che deve essere seguita in ogni circostanza, senza eccezioni, perché è intrinsecamente giusta. Kant lo formula così: "Agisci solo secondo quella massima per cui tu possa, allo stesso tempo, volere che diventi una legge universale."
Uh sono impressionato! Una sintesi puntuale e precisa, che rende giustizia al concetto, direi... :-D
### Analogia con la Programmazione
**Analogia Informatica:** Immagina di scrivere un programma che esegua azioni morali.
"Immagina, puoi!" ...significa che hai moltissima immaginazione, non tanto per la moralità delle azioni quanto per il programma che "esegua _azioni_" [...]
- In programmazione, possiamo vedere una massima come una funzione che descrive un comportamento specifico.
OK, dobbiamo scrivere una funzione: in che linguaggio di programmazione la esprimo?!? [...]
- In termini informatici, questo significa che la funzione deve poter essere eseguita in qualsiasi contesto senza generare errori o comportamenti indesiderati. È come scrivere una funzione che deve sempre restituire un risultato valido indipendentemente dai parametri di input.
Come "indipendente dai parametri di input"?!? (lambda (x) (true))?!? Non è che "indipendentemente dai parametri di input" è un refuso? Un linguaggio che permetta di scrivere un programma che non deve generare "comportamenti indesiderati" allora IMO deve essere scritto in un linguaggio che abbia almeno: 1. first-class functions 2. pure funcions 3. referential transparency in altre parole in "Purely functional programming", anche se Qualcuno™ direbbe che anche un linguaggio "quasi-pure" come un dialetto Lisp potrebbe bastare... anche paiton può essere usato per il functional programming, ma bisogna fare _estrema_ attanzione, direi che è quasi impossibile :-O [...]
Quindi, l'imperativo categorico è come una condizione che tutte le tue funzioni morali devono soddisfare per garantire che il sistema morale (la società) rimanga coerente e privo di errori.
fico: ci sto!
[Claude]
Chi è Claude? [...]
I punti chiave sono:
1. Universalità: Come una funzione che deve funzionare correttamente per tutti gli input possibili,
OK, una "pure funcion" idempotente, ci siamo: si può fare! :-D [...]
3. Trattare le persone come fini: Analogamente a come trattiamo gli oggetti in programmazione orientata agli oggetti,
ma no! abbiamo detto programmazione funzionale, non a oggetti! :-O ...e perché non in un linguaggio di logic programming, tipo Prolog?!? aggià, che scemo: quella "pista" dell'IA è una pista morta, adesso ci sono le "reti neurali" che sostituiscono la logica formale, anzi sostituiscono sia la logica che... il giudizio, che è prodromico all'imperativo categorico di kantiana /invenzione/ [...]
4. Test di validità: Come un test unitario per il codice etico, l'imperativo categorico fornisce un modo per verificare se un'azione è moralmente accettabile.
uh fico: allora _deve_ essere possibile scrivere un programma - però non in paiton, che viene male IMO - per verificare l'accettabilità morale di una azione fornita in input!
[MODE=JOKING, CONTENT= :-)]
:-D [...] saluti, 380° -- 380° (Giovanni Biscuolo public alter ego) «Noi, incompetenti come siamo, non abbiamo alcun titolo per suggerire alcunché» Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>.