Forse non ho formulato correttamente il titolo. C'è qualche linguaggio di programmazione che si occupa di tipi di numeri matematici naturali piuttosto che tipi di dati tipici che vediamo come Int32, Int64, Float, Double etc?
Per tipi di numeri naturali intendo espressioni simili a
natural (1, 2, 3 ...)
whole (0, 1, 2, 3 ...)
integer (-1, 0, 1, 2, 3 ...)
rational (-1, 0, 1, 1.25, 2, 3, 3.5 ...)
real (-1, 0, 1, 1.25, 2, 3, pi, 3.5 ...)
complex (-1, 0, 1, 1.25, 2, 3, pi, 3.5, i, 2i, 1 + 2i ...)
Oppure potrebbe essere un po 'più pratico e utile set di tipi, come
whole (0, 1, 2, 3 ...)
integer (-1, 0, 1, 2, 3 ...)
real (-1, 0, 1, 1.25, 2, 3, 3.5 ...)
complex (-1, 0, 1, 1.25, 2, 3, pi, 3.5, i, 2i, 1 + 2i ...)
in modo che se scrivo:
whole w = 1 // compiles
integer i = 1.2 // doesnt compile
real r = 1.2 //compiles
complex c = 1 + i //compilesw = i //doesnt compile
i = w //compiles
r = i //compiles
c = r //compiles
So che posso raggiungerlo nella maggior parte dei linguaggi di programmazione usando uint32
, int32
, decimal
etc tipi, ma non vedo l'ora di un linguaggio che non sembra tecnico sui tipi numerici.
Pochi punti:
-
Ricerca di linguaggi di programmazione che definiscano i tipi numerici da una prospettiva matematica e non da un computer.
-
So che le dimensioni contano sempre nella programmazione, ma supponiamo che le dimensioni non siano un problema per ora. O potrebbe essere configurabile e potrei impostare la dimensione come
uint64
,int64
ecc. Ciò è più che mai necessario. -
Non sono in cerca di librerie matematiche che hanno tipi definiti come
real
,complex
ecc. Voglio che quei tipi siano trattati come prima classe dal compilatore / linguaggio stesso in modo che venga eseguito il controllo degli errori statici.
Chiedilo solo per curiosità quando pensavo ai linguaggi di programmazione per scopi educativi per amici non programmatori.