2010-04-08 2 views
7

Qual è il linguaggio di programmazione più conciso? nel caso in cui sia necessario un criterio per la concisione: a saldo è richiesta la minor quantità di caratteri per creare un dato programma.Qual è il linguaggio di programmazione più conciso?

+1

Dovrebbe essere almeno un wiki – tanascius

+0

come faccio a renderlo un wiki? – David

+0

Davvero una domanda difficile, ma vorrei fare un assemblaggio compresso :) –

risposta

24

APL, giù le mani.

gioco della vita in una sola riga:

alt text http://catpad.net/michael/APLLife.gif

+0

questa sarà quasi una pagina in LaTeX: D –

+0

Che barare! Quando il tuo set di caratteri è di milioni di caratteri (come sembra in questo caso) è ingiusto competere con linguaggi vincolati a caratteri alfanumerici e punteggiatura :) –

+1

Il set di caratteri APL è di dimensioni ragionevoli. Non puoi semplicemente scriverlo su una tastiera normale. – dmckee

9

J, un discendente di APL.

Esempio attuazione J di quicksort (spazi per chiarezza):

quicksort =: (($:@(<#[) , (=#[) , $:@(>#[)) ({~ [email protected]#)) ^: (1<#) 
+17

Gli spazi bianchi non aiutano ... –

+7

@mmyers: Forse provare a fare lo squinting? – David

+11

Sei sicuro che non sia una specie di smiley totemico? – RD1

7

The Whitespace programnming language consente solo tre caratteri (spazio, tab e newline).

+0

omg, questo è impagabile – digitaldreamer

+1

Sì, tre caratteri sono buoni, ma due sono getter: D Guarda le lingue Iota, Jot e Zot: http://esolangs.org/wiki/Jot –

+3

dove trovo una versione unicode di quella lingua? –

3

Binario.

Gli zeri e quelli vengono quindi interpretati come codice x86.

non c'è davvero una buona risposta qui

+0

dovresti davvero vedere la lingua Iota :) –

8

Penso che sia APL (o uno dei suoi dialetti). Ad esempio, per trovare tutti i numeri primi tra 1 e R, questo codice funziona:

(~R∊R∘.×R)/R←1↓⍳R

Tuttavia, per un uso quotidiano, penso che qualsiasi linguaggio funzionale (F #, per esempio) è molto conciso, dal momento che si esprime solo quello vuoi fare, non come.

+4

"Esprimi ciò che vuoi fare, non come" non è una descrizione dei linguaggi funzionali, ma di quelli dichiarativi, come Prolog. E anche lì, è corretto solo al 90%. –

+0

Penso che sia più corretto descrivere i linguaggi funzionali come "descrivere quale sia la 'soluzione' sembra" piuttosto che come trovare la soluzione .. Almeno questo è quello che ho raccolto dalla mia esperienza Haskell limitata – Earlz