Che cosa significa esattamente "Applicativo" in informatica?

4

So cos'è un "Functional applicativo", ma di recente ho letto articoli che si riferiscono ad altre cose "applicative", in particolare "strutture di dati puramente applicative".

Il problema è che non sono sicuro di cosa significhi "applicativo" in questo contesto e Google finora mi ha mancato. Posso ottenere una definizione di inglese "generale" (cioè inutile) di "applicativo", ma non appena aggiungo "informatica" alla ricerca tutto ciò che ottengo sono definizioni di informatica.

Ho un vago senso che ciò si riferisce al fatto di mantenerli fastidiosi effetti al loro posto, ma potrei usare una definizione precisa.

Ho trovato questo - link - ma non sono sicuro che "linguaggio applicativo == linguaggio funzionale" sia di grande aiuto.

    
posta Steve314 16.02.2012 - 01:50
fonte

1 risposta

3

La migliore definizione generale che riesco a pensare è "rispetta il principio di extensionality ".

Un funtore applicativo dotato di strutture uguali produce strutture uguali. Contrasto con un funtore generativo, che produce ogni volta una struttura "fresca" --- cioè, l'uguaglianza delle strutture dipende da "dove" e / o "quando" sono stati prodotti.

Una struttura di dati applicativa è quella in cui l'informazione è rappresentata da "come viene costruita la struttura dei dati", piuttosto che da elementi esterni come le locazioni di memoria. Questo senso di "applicativo" richiede una certa prospettiva, comune nella semantica del linguaggio di programmazione, che separa i "valori" da "il negozio" (un'astrazione di memoria mutevole). Per i tipi di dati algebrici, l'estensione identifica due valori dello stesso tipo se sono stati prodotti dallo stesso costruttore applicato agli stessi argomenti. Il risultato è che la mutazione e "l'identità dell'oggetto" sono proibite.

C'è anche un altro uso: " ordine di valutazione applicativo ". Non sono sicuro che l'uso sia correlato agli altri.

    
risposta data 16.02.2012 - 03:39
fonte

Leggi altre domande sui tag