Qual è la differenza tra lingue digitate dipendenti e lingue come Spec # e Eiffel che consentono di specificare "contratti" per le funzioni nel codice per pre / post-condizioni? Dipende essenzialmente dalla tipizzazione della versione puramente funzionale dei "contratti" di Eiffel?
Da quanto ho capito, lingue tipizzate in modo dipendente ti consentono di specificare le funzioni della tua funzione pre e post condizioni utilizzando la logica dei predicati come parte del tipo.
Il concetto di contratti di Eiffel sembra essere simile, ma basato sulla programmazione imperativa, non sulla programmazione funzionale.