Knowledge (XXG)

Clean (programming language)

Source ๐Ÿ“

40: 3423: 3395: 314:
takes advantage of the uniqueness type system to generate more efficient code, because it knows that at any point during the execution of the program, only one reference can exist to a value with a unique type. Therefore, a unique value can be
834:. Constants such as numbers are graphs and functions are graph rewriting formulas. This, combined with compiling to native code, makes Clean programs which use high abstraction run relatively fast according to 254:
in Nijmegen since 1987. Although development of the language has slowed, some researchers are still working in the language. In 2018, a spin-off company was founded that uses Clean.
926:
The B(asic value)-stack holds basic values (integers, characters, reals, etc.). Although these values could be nodes in the graph store, a separate stack is used for efficiency.
2888: 2903: 3127: 3467: 2998:
Staps, Camil; van Groningen, John; Plasmeijer, Rinus (15 July 2021). "Lazy interworking of compiled and interpreted code for sandboxing and distributed systems".
2858: 3452: 2870: 3411: 3457: 862:
Source files (.icl) and definition files (.dcl) are translated into Core Clean, a basic variant of Clean, by the compiler frontend written in Clean.
3416: 3462: 3406: 911:. Because machine code generation for ABC code is relatively straightforward, it is easy to support new architectures. The ABC machine is an 835: 283: 233: 3147: 3120: 323: 865:
Core clean is converted into Clean's platform-independent intermediate language (.abc), by the compiler backend written in Clean and
3152: 3015: 879:
Object code is linked with other files in the module and the runtime system and converted into a normal executable using the system
3157: 2957: 2713: 2231:
The syntax of Clean is very similar to that of Haskell, with some notable differences. In general, Haskell has introduced more
3426: 3358: 3231: 3113: 307: 263: 201: 2731: 3447: 3401: 3379: 3333: 3306: 3281: 3241: 236: 3373: 3276: 3246: 221: 2749: 3348: 3343: 3286: 3266: 904: 802:
The type declaration states that the function is a right associative infix operator with priority 8: this states that
94: 65: 3291: 3187: 3170: 3301: 3256: 3338: 3221: 949:
Although Clean is typically used to generate native executables, several projects have enabled applications in
892: 873: 866: 843: 271: 1016:
which is only available on Windows. Also the feature to write dynamics to files is only available on Windows.
941:
node in the graph store and pushes it on the A-stack. It then begins printing it, evaluating it as needed.
39: 3207: 912: 287: 157: 125: 52: 2921: 919:
machine. It consists of a graph store to hold the Clean graph that is being rewritten and three stacks:
839: 2692: 3136: 239: 47: 3212: 2432: 338: 3021: 2288: 880: 492: 316: 275: 251: 164: 3192: 3011: 2953: 2882: 1013: 974: 327: 279: 3003: 908: 815: 152: 140: 3000:
Proceedings of the 31st Symposium on Implementation and Application of Functional Languages
2934: 2667: 2232: 916: 831: 827: 303: 295: 59: 17: 872:
Intermediate ABC code is converted to object code (.o) by the code generator written in
1071: 1041: 934: 699: 145: 133: 2973: 3441: 3311: 3025: 2717: 129: 3363: 3202: 855: 299: 2735: 962: 950: 120: 3271: 2037: 961:
and did not use ABC code. Since 2019, an interpreter for ABC code, written in
958: 3368: 3007: 2859:
ftp://ftp.cs.ru.nl/pub/Clean/papers/2007/achp2007-CleanHaskellQuickGuide.pdf
2753: 923:
The A(rgument)-stack holds arguments that refer to nodes in the graph store.
357: 3039: 311: 291: 3105: 3261: 3251: 2768:"Radboud University Nijmegen: Department of Software Science: Software" 1076: 1066: 1046: 1006: 884: 267: 217: 205: 2806: 3328: 3296: 3180: 2767: 2162: 1993: 1938: 1805: 1096: 1081: 1061: 1002: 990: 982: 3226: 3236: 3197: 3175: 2217: 2213: 2170: 2166: 1946: 1942: 1852: 1848: 1091: 1086: 1056: 1036: 1031: 998: 994: 986: 978: 891:
Earlier versions of the Clean compiler were written completely in
2781: 1019:
The availability of Clean per platform varies with each version:
3318: 2316: 2158: 1989: 1934: 1801: 3109: 2902:
Jansen, Jan Martin; Koopman, Pieter; Plasmeijer, Rinus (2008).
2831: 3353: 3323: 3088: 3064: 954: 929:
The C(ontrol)-stack holds return addresses for flow control.
883:(when available) or a dedicated linker written in Clean on 250:, it has been developed by a group of researchers from the 197: 3093: 1012:
Some libraries are not available on all platforms, like
842:
showed that Clean native code performs similarly to the
178: 3099: 2952:(PhD). Katholieke Universiteit Nijmegen. p. 35. 814:. This operator is pre-defined in StdEnv, the Clean 2854: 2852: 2237: 211: 191: 173: 163: 151: 139: 119: 93: 71: 58: 46: 937:, which is linked into every executable, builds a 2950:Functional Programs as Executable Specifications 2887:: CS1 maint: bot: original URL status unknown ( 298:. However, Clean deals with mutable state and 3121: 3102:: a search engine to search in Clean packages 2974:"Clean and iTasks / ABC Interpreter ยท GitLab" 2877:. Archived from the original on 28 June 2011. 8: 32: 3394: 3128: 3114: 3106: 2871:"Which programming languages are fastest?" 1021: 31: 306:system, in contrast to Haskell's use of 2659: 330:is included in the Clean distribution. 2930: 2919: 2880: 895:, thus avoiding bootstrapping issues. 64:Software Technology Research Group of 3468:Programming languages created in 1987 3096:: public registry with Clean packages 836:The Computer Language Benchmarks Game 7: 3453:Term-rewriting programming languages 2948:Koopman, Pieter (10 December 1990). 2904:"From Interpretation to Compilation" 471:// The product of the numbers 1 to n 903:The ABC code mentioned above is an 846:(GHC), depending on the benchmark. 324:integrated development environment 25: 2875:Computer Language Benchmarks Game 266:with a younger sibling language, 262:Clean shares many properties and 3422: 3421: 3393: 38: 3458:Free compilers and interpreters 957:project compiled Core Clean to 27:Functional programming language 2499:class assertions and contexts 1: 499: 364: 3463:Cross-platform free software 945:Running Clean in the browser 100:3.1 / 5 January 2022 905:intermediate representation 77:; 37 years ago 66:Radboud University Nijmegen 3484: 2978:Clean and iTasks on GitLab 2693:"Idris - Uniqueness Types" 18:Clean programming language 3389: 3166: 3143: 1050: 1045: 1035: 1030: 1027: 1024: 858:is performed as follows: 352:"Hello, world!" 216: 196: 115: 89: 37: 2617: 2587: 2543: 2504: 2472: 2439: 2378: 2324: 2310: 2295: 2270: 2252: 854:Compilation of Clean to 844:Glasgow Haskell Compiler 704: 606: 501: 441: 366: 343: 272:referential transparency 242:. Originally called the 3008:10.1145/3412932.3412941 2836:TOP Software Technology 973:Clean is available for 244:Concurrent Clean System 2929:Cite journal requires 826:Computing is based on 288:higher order functions 3137:Programming languages 2227:Comparison to Haskell 102:; 2 years ago 3448:Functional languages 953:. The now abandoned 240:programming language 2750:"Clean 1.3: Readme" 2732:"Clean 1.0: Readme" 2714:"Clean 0.7: Readme" 2433:algebraic data type 965:, is used instead. 165:Filename extensions 72:First appeared 34: 2289:list comprehension 493:Fibonacci sequence 284:garbage collection 276:list comprehension 252:Radboud University 3435: 3434: 3417:Non-English-based 3065:"Index of /Clean" 3040:"Release history" 3002:. pp. 1โ€“12. 2756:on 27 April 2019. 2651: 2650: 2224: 2223: 1497:13 September 2000 975:Microsoft Windows 806:is equivalent to 697: 696: 490: 489: 328:Microsoft Windows 237:purely functional 227: 226: 121:Typing discipline 16:(Redirected from 3475: 3425: 3424: 3397: 3396: 3130: 3123: 3116: 3107: 3076: 3075: 3073: 3071: 3061: 3055: 3054: 3052: 3050: 3036: 3030: 3029: 2995: 2989: 2988: 2986: 2984: 2970: 2964: 2963: 2945: 2939: 2938: 2932: 2927: 2925: 2917: 2915: 2913: 2908: 2899: 2893: 2892: 2886: 2878: 2867: 2861: 2856: 2847: 2846: 2844: 2842: 2828: 2822: 2821: 2819: 2817: 2803: 2797: 2796: 2794: 2792: 2778: 2772: 2771: 2764: 2758: 2757: 2752:. Archived from 2746: 2740: 2739: 2734:. Archived from 2728: 2722: 2721: 2716:. Archived from 2710: 2704: 2703: 2701: 2699: 2689: 2683: 2682: 2680: 2678: 2668:"Download Clean" 2664: 2642: 2639: 2636: 2633: 2630: 2627: 2624: 2621: 2612: 2609: 2606: 2603: 2600: 2597: 2594: 2591: 2577: 2574: 2571: 2568: 2565: 2562: 2559: 2556: 2553: 2550: 2547: 2538: 2535: 2532: 2529: 2526: 2523: 2520: 2517: 2514: 2511: 2508: 2494: 2491: 2488: 2485: 2482: 2479: 2476: 2467: 2464: 2461: 2458: 2455: 2452: 2449: 2446: 2443: 2427: 2424: 2421: 2418: 2415: 2412: 2409: 2406: 2403: 2400: 2397: 2394: 2391: 2388: 2385: 2382: 2373: 2370: 2367: 2364: 2361: 2358: 2355: 2352: 2349: 2346: 2343: 2340: 2337: 2334: 2331: 2328: 2305: 2302: 2299: 2283: 2280: 2277: 2274: 2265: 2262: 2259: 2256: 2238: 2183: 2128: 2089: 2050: 2049:26 February 1993 2006: 1959: 1904: 1865: 1818: 1771: 1732: 1693: 1654: 1615: 1576: 1537: 1498: 1459: 1458:21 December 2001 1420: 1381: 1380:12 December 2002 1342: 1303: 1264: 1263:19 December 2006 1225: 1224:22 December 2010 1186: 1185:23 December 2011 1147: 1108: 1022: 940: 909:abstract machine 816:standard library 813: 809: 805: 798: 795: 792: 789: 786: 783: 780: 777: 774: 771: 768: 765: 762: 759: 756: 753: 750: 747: 744: 741: 738: 735: 732: 729: 726: 723: 720: 717: 714: 711: 708: 691: 688: 685: 682: 679: 676: 673: 670: 667: 664: 661: 658: 655: 652: 649: 646: 643: 640: 637: 634: 631: 628: 625: 622: 619: 616: 613: 610: 601: 598: 595: 592: 589: 586: 583: 580: 577: 574: 571: 568: 565: 562: 559: 556: 553: 550: 547: 544: 541: 538: 535: 532: 529: 526: 523: 520: 517: 514: 511: 508: 505: 498: 497: 484: 481: 478: 475: 472: 469: 466: 463: 460: 457: 454: 451: 448: 445: 436: 433: 430: 427: 424: 421: 418: 415: 412: 409: 406: 403: 400: 397: 394: 391: 388: 385: 382: 379: 376: 373: 370: 363: 362: 353: 350: 347: 317:changed in place 302:(I/O) through a 187: 184: 182: 180: 169:.icl, .dcl, .abc 110: 108: 103: 85: 83: 78: 60:Designed by 42: 35: 21: 3483: 3482: 3478: 3477: 3476: 3474: 3473: 3472: 3438: 3437: 3436: 3431: 3385: 3162: 3139: 3134: 3085: 3080: 3079: 3069: 3067: 3063: 3062: 3058: 3048: 3046: 3038: 3037: 3033: 3018: 2997: 2996: 2992: 2982: 2980: 2972: 2971: 2967: 2960: 2947: 2946: 2942: 2928: 2918: 2911: 2909: 2906: 2901: 2900: 2896: 2879: 2869: 2868: 2864: 2857: 2850: 2840: 2838: 2830: 2829: 2825: 2815: 2813: 2805: 2804: 2800: 2790: 2788: 2780: 2779: 2775: 2766: 2765: 2761: 2748: 2747: 2743: 2730: 2729: 2725: 2720:on 24 May 2019. 2712: 2711: 2707: 2697: 2695: 2691: 2690: 2686: 2676: 2674: 2666: 2665: 2661: 2656: 2644: 2643: 2640: 2637: 2634: 2631: 2628: 2625: 2622: 2619: 2614: 2613: 2610: 2607: 2604: 2601: 2598: 2595: 2592: 2589: 2579: 2578: 2575: 2572: 2569: 2566: 2563: 2560: 2557: 2554: 2551: 2548: 2545: 2540: 2539: 2536: 2533: 2530: 2527: 2524: 2521: 2518: 2515: 2512: 2509: 2506: 2496: 2495: 2492: 2489: 2486: 2483: 2480: 2477: 2474: 2469: 2468: 2465: 2462: 2459: 2456: 2453: 2450: 2447: 2444: 2441: 2429: 2428: 2425: 2422: 2419: 2416: 2413: 2410: 2407: 2404: 2401: 2398: 2395: 2392: 2389: 2386: 2383: 2380: 2375: 2374: 2371: 2368: 2365: 2362: 2359: 2356: 2353: 2350: 2347: 2344: 2341: 2338: 2335: 2332: 2329: 2326: 2313: 2312: 2307: 2306: 2303: 2300: 2297: 2285: 2284: 2281: 2278: 2275: 2272: 2267: 2266: 2263: 2260: 2257: 2254: 2233:syntactic sugar 2229: 2181: 2126: 2088:19 October 1992 2087: 2048: 2038:T800 transputer 2004: 1957: 1902: 1863: 1816: 1769: 1731:13 January 1997 1730: 1691: 1652: 1613: 1574: 1535: 1496: 1457: 1418: 1379: 1341:31 October 2003 1340: 1301: 1262: 1223: 1184: 1145: 1106: 971: 947: 938: 917:graph rewriting 901: 899:The ABC machine 852: 828:graph rewriting 824: 822:How Clean works 811: 807: 803: 800: 799: 796: 793: 790: 787: 784: 781: 778: 775: 772: 769: 766: 763: 760: 757: 754: 751: 748: 745: 742: 739: 736: 733: 730: 727: 724: 721: 718: 715: 712: 709: 706: 693: 692: 689: 686: 683: 680: 677: 674: 671: 668: 665: 662: 659: 656: 653: 650: 647: 644: 641: 638: 635: 632: 629: 626: 623: 620: 617: 614: 611: 608: 603: 602: 599: 596: 593: 590: 587: 584: 581: 578: 575: 572: 569: 566: 563: 560: 557: 554: 551: 548: 545: 542: 539: 536: 533: 530: 527: 524: 521: 518: 515: 512: 509: 506: 503: 486: 485: 482: 479: 476: 473: 470: 467: 464: 461: 458: 455: 452: 449: 446: 443: 438: 437: 434: 431: 428: 425: 422: 419: 416: 413: 410: 407: 404: 401: 398: 395: 392: 389: 386: 383: 380: 377: 374: 371: 368: 355: 354: 351: 348: 345: 336: 304:uniqueness type 296:lazy evaluation 260: 234:general-purpose 177: 111: 106: 104: 101: 81: 79: 76: 28: 23: 22: 15: 12: 11: 5: 3481: 3479: 3471: 3470: 3465: 3460: 3455: 3450: 3440: 3439: 3433: 3432: 3430: 3429: 3419: 3414: 3409: 3404: 3390: 3387: 3386: 3384: 3383: 3376: 3371: 3366: 3361: 3356: 3351: 3346: 3341: 3336: 3331: 3326: 3321: 3316: 3315: 3314: 3304: 3299: 3294: 3289: 3284: 3279: 3274: 3269: 3264: 3259: 3254: 3249: 3244: 3239: 3234: 3229: 3224: 3219: 3218: 3217: 3216: 3215: 3210: 3195: 3190: 3185: 3184: 3183: 3173: 3167: 3164: 3163: 3161: 3160: 3155: 3150: 3144: 3141: 3140: 3135: 3133: 3132: 3125: 3118: 3110: 3104: 3103: 3097: 3094:clean-lang.org 3091: 3084: 3083:External links 3081: 3078: 3077: 3056: 3031: 3016: 2990: 2965: 2958: 2940: 2931:|journal= 2894: 2862: 2848: 2823: 2807:"Publications" 2798: 2773: 2759: 2741: 2738:on 5 May 2019. 2723: 2705: 2684: 2658: 2657: 2655: 2652: 2649: 2648: 2645: 2618: 2615: 2588: 2584: 2583: 2580: 2544: 2541: 2505: 2501: 2500: 2497: 2473: 2470: 2440: 2436: 2435: 2430: 2379: 2376: 2325: 2321: 2320: 2314: 2311: 2308: 2296: 2292: 2291: 2286: 2271: 2268: 2253: 2249: 2248: 2245: 2242: 2228: 2225: 2222: 2221: 2211: 2208: 2205: 2202: 2199: 2196: 2193: 2190: 2187: 2184: 2179: 2175: 2174: 2156: 2153: 2150: 2147: 2144: 2141: 2138: 2135: 2132: 2129: 2124: 2120: 2119: 2117: 2114: 2111: 2108: 2105: 2102: 2099: 2096: 2093: 2090: 2085: 2081: 2080: 2078: 2075: 2072: 2069: 2066: 2063: 2060: 2057: 2054: 2051: 2046: 2042: 2041: 2034: 2031: 2028: 2025: 2022: 2019: 2016: 2013: 2010: 2007: 2002: 1998: 1997: 1987: 1984: 1981: 1978: 1975: 1972: 1969: 1966: 1963: 1960: 1955: 1951: 1950: 1932: 1929: 1926: 1923: 1920: 1917: 1914: 1911: 1908: 1905: 1903:September 1995 1900: 1896: 1895: 1893: 1890: 1887: 1884: 1881: 1878: 1875: 1872: 1869: 1866: 1861: 1857: 1856: 1846: 1843: 1840: 1837: 1834: 1831: 1828: 1825: 1822: 1819: 1817:September 1996 1814: 1810: 1809: 1799: 1796: 1793: 1790: 1787: 1784: 1781: 1778: 1775: 1772: 1767: 1763: 1762: 1760: 1757: 1754: 1751: 1748: 1745: 1742: 1739: 1736: 1733: 1728: 1724: 1723: 1721: 1718: 1715: 1712: 1709: 1706: 1703: 1700: 1697: 1694: 1689: 1685: 1684: 1682: 1679: 1676: 1673: 1670: 1667: 1664: 1661: 1658: 1655: 1650: 1646: 1645: 1643: 1640: 1637: 1634: 1631: 1628: 1625: 1622: 1619: 1616: 1611: 1607: 1606: 1604: 1601: 1598: 1595: 1592: 1589: 1586: 1583: 1580: 1577: 1572: 1568: 1567: 1565: 1562: 1559: 1556: 1553: 1550: 1547: 1544: 1541: 1538: 1533: 1529: 1528: 1526: 1523: 1520: 1517: 1514: 1511: 1508: 1505: 1502: 1499: 1494: 1490: 1489: 1487: 1484: 1481: 1478: 1475: 1472: 1469: 1466: 1463: 1460: 1455: 1451: 1450: 1448: 1445: 1442: 1439: 1436: 1433: 1430: 1427: 1424: 1421: 1416: 1412: 1411: 1409: 1406: 1403: 1400: 1397: 1394: 1391: 1388: 1385: 1382: 1377: 1373: 1372: 1370: 1367: 1364: 1361: 1358: 1355: 1352: 1349: 1346: 1343: 1338: 1334: 1333: 1331: 1328: 1325: 1322: 1319: 1316: 1313: 1310: 1307: 1304: 1299: 1295: 1294: 1292: 1289: 1286: 1283: 1280: 1277: 1274: 1271: 1268: 1265: 1260: 1256: 1255: 1253: 1250: 1247: 1244: 1241: 1238: 1235: 1232: 1229: 1226: 1221: 1217: 1216: 1214: 1211: 1208: 1205: 1202: 1199: 1196: 1193: 1190: 1187: 1182: 1178: 1177: 1175: 1172: 1169: 1166: 1163: 1160: 1157: 1154: 1151: 1148: 1146:2 October 2018 1143: 1139: 1138: 1136: 1133: 1130: 1127: 1124: 1121: 1118: 1115: 1112: 1109: 1107:5 January 2022 1104: 1100: 1099: 1094: 1089: 1084: 1079: 1074: 1072:Motorola 68040 1069: 1064: 1059: 1053: 1052: 1051:Miscellaneous 1049: 1044: 1042:Oracle Solaris 1039: 1034: 1029: 1026: 970: 967: 946: 943: 935:runtime system 931: 930: 927: 924: 900: 897: 889: 888: 877: 870: 863: 851: 848: 823: 820: 810:as opposed to 705: 695: 694: 607: 604: 502: 488: 487: 442: 439: 367: 344: 335: 332: 259: 256: 225: 224: 214: 213: 209: 208: 194: 193: 189: 188: 175: 171: 170: 167: 161: 160: 158:Simplified BSD 155: 149: 148: 146:Cross-platform 143: 137: 136: 123: 117: 116: 113: 112: 99: 97: 95:Stable release 91: 90: 87: 86: 73: 69: 68: 62: 56: 55: 50: 44: 43: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 3480: 3469: 3466: 3464: 3461: 3459: 3456: 3454: 3451: 3449: 3446: 3445: 3443: 3428: 3420: 3418: 3415: 3413: 3410: 3408: 3405: 3403: 3400: 3392: 3391: 3388: 3382: 3381: 3377: 3375: 3372: 3370: 3367: 3365: 3362: 3360: 3357: 3355: 3352: 3350: 3347: 3345: 3342: 3340: 3337: 3335: 3332: 3330: 3327: 3325: 3322: 3320: 3317: 3313: 3312:Object Pascal 3310: 3309: 3308: 3305: 3303: 3300: 3298: 3295: 3293: 3290: 3288: 3285: 3283: 3280: 3278: 3275: 3273: 3270: 3268: 3265: 3263: 3260: 3258: 3255: 3253: 3250: 3248: 3245: 3243: 3240: 3238: 3235: 3233: 3230: 3228: 3225: 3223: 3220: 3214: 3211: 3209: 3206: 3205: 3204: 3201: 3200: 3199: 3196: 3194: 3191: 3189: 3186: 3182: 3179: 3178: 3177: 3174: 3172: 3169: 3168: 3165: 3159: 3156: 3154: 3151: 3149: 3146: 3145: 3142: 3138: 3131: 3126: 3124: 3119: 3117: 3112: 3111: 3108: 3101: 3098: 3095: 3092: 3090: 3087: 3086: 3082: 3066: 3060: 3057: 3045: 3041: 3035: 3032: 3027: 3023: 3019: 3017:9781450375627 3013: 3009: 3005: 3001: 2994: 2991: 2979: 2975: 2969: 2966: 2961: 2955: 2951: 2944: 2941: 2936: 2923: 2905: 2898: 2895: 2890: 2884: 2876: 2872: 2866: 2863: 2860: 2855: 2853: 2849: 2837: 2833: 2827: 2824: 2812: 2808: 2802: 2799: 2787: 2783: 2777: 2774: 2769: 2763: 2760: 2755: 2751: 2745: 2742: 2737: 2733: 2727: 2724: 2719: 2715: 2709: 2706: 2694: 2688: 2685: 2673: 2669: 2663: 2660: 2653: 2646: 2616: 2586: 2585: 2581: 2542: 2503: 2502: 2498: 2471: 2438: 2437: 2434: 2431: 2377: 2323: 2322: 2318: 2315: 2309: 2294: 2293: 2290: 2287: 2269: 2251: 2250: 2246: 2243: 2240: 2239: 2236: 2234: 2226: 2219: 2215: 2212: 2209: 2206: 2203: 2200: 2197: 2194: 2191: 2188: 2185: 2180: 2177: 2176: 2172: 2168: 2164: 2160: 2157: 2154: 2151: 2148: 2145: 2142: 2139: 2136: 2133: 2130: 2125: 2122: 2121: 2118: 2115: 2112: 2109: 2106: 2103: 2100: 2097: 2094: 2091: 2086: 2083: 2082: 2079: 2076: 2073: 2070: 2067: 2064: 2061: 2058: 2055: 2052: 2047: 2044: 2043: 2039: 2036:Experimental 2035: 2032: 2029: 2026: 2023: 2020: 2017: 2014: 2011: 2008: 2003: 2000: 1999: 1995: 1991: 1988: 1985: 1982: 1979: 1976: 1973: 1970: 1967: 1964: 1961: 1956: 1953: 1952: 1948: 1944: 1940: 1936: 1933: 1930: 1927: 1924: 1921: 1918: 1915: 1912: 1909: 1906: 1901: 1898: 1897: 1894: 1891: 1888: 1885: 1882: 1879: 1876: 1873: 1870: 1867: 1862: 1859: 1858: 1854: 1850: 1847: 1844: 1841: 1838: 1835: 1832: 1829: 1826: 1823: 1820: 1815: 1812: 1811: 1807: 1803: 1800: 1797: 1794: 1791: 1788: 1785: 1782: 1779: 1776: 1773: 1768: 1765: 1764: 1761: 1758: 1755: 1752: 1749: 1746: 1743: 1740: 1737: 1734: 1729: 1726: 1725: 1722: 1719: 1716: 1713: 1710: 1707: 1704: 1701: 1698: 1695: 1690: 1687: 1686: 1683: 1680: 1677: 1674: 1671: 1668: 1665: 1662: 1659: 1656: 1651: 1648: 1647: 1644: 1641: 1638: 1635: 1632: 1629: 1626: 1623: 1620: 1617: 1612: 1609: 1608: 1605: 1602: 1599: 1596: 1593: 1590: 1587: 1584: 1581: 1578: 1573: 1570: 1569: 1566: 1563: 1560: 1557: 1554: 1551: 1548: 1545: 1542: 1539: 1534: 1531: 1530: 1527: 1524: 1521: 1518: 1515: 1512: 1509: 1506: 1503: 1500: 1495: 1492: 1491: 1488: 1485: 1482: 1479: 1476: 1473: 1470: 1467: 1464: 1461: 1456: 1453: 1452: 1449: 1446: 1443: 1440: 1437: 1434: 1431: 1428: 1425: 1422: 1417: 1414: 1413: 1410: 1407: 1404: 1401: 1398: 1395: 1392: 1389: 1386: 1383: 1378: 1375: 1374: 1371: 1368: 1365: 1362: 1359: 1356: 1353: 1350: 1347: 1344: 1339: 1336: 1335: 1332: 1329: 1326: 1323: 1320: 1317: 1314: 1311: 1308: 1305: 1300: 1297: 1296: 1293: 1290: 1287: 1284: 1281: 1278: 1275: 1272: 1269: 1266: 1261: 1258: 1257: 1254: 1251: 1248: 1245: 1242: 1239: 1236: 1233: 1230: 1227: 1222: 1219: 1218: 1215: 1212: 1209: 1206: 1203: 1200: 1197: 1194: 1191: 1188: 1183: 1180: 1179: 1176: 1173: 1170: 1167: 1164: 1161: 1158: 1155: 1152: 1149: 1144: 1141: 1140: 1137: 1134: 1131: 1128: 1125: 1122: 1119: 1116: 1113: 1110: 1105: 1102: 1101: 1098: 1095: 1093: 1090: 1088: 1085: 1083: 1080: 1078: 1075: 1073: 1070: 1068: 1065: 1063: 1060: 1058: 1055: 1054: 1048: 1043: 1040: 1038: 1033: 1023: 1020: 1017: 1015: 1010: 1008: 1004: 1000: 996: 992: 988: 984: 980: 976: 968: 966: 964: 960: 956: 952: 944: 942: 936: 928: 925: 922: 921: 920: 918: 914: 910: 906: 898: 896: 894: 886: 882: 878: 875: 871: 868: 864: 861: 860: 859: 857: 849: 847: 845: 841: 837: 833: 829: 821: 819: 817: 703: 701: 605: 500: 496: 494: 440: 365: 361: 359: 342: 340: 333: 331: 329: 325: 320: 318: 313: 309: 305: 301: 297: 293: 289: 285: 281: 277: 273: 269: 265: 257: 255: 253: 249: 245: 241: 238: 235: 231: 223: 219: 215: 210: 207: 203: 199: 195: 192:Influenced by 190: 186: 176: 172: 168: 166: 162: 159: 156: 154: 150: 147: 144: 142: 138: 135: 131: 127: 124: 122: 118: 114: 98: 96: 92: 88: 74: 70: 67: 63: 61: 57: 54: 51: 49: 45: 41: 36: 30: 19: 3412:Generational 3402:Alphabetical 3398: 3378: 3203:Visual Basic 3068:. Retrieved 3059: 3047:. Retrieved 3043: 3034: 2999: 2993: 2981:. Retrieved 2977: 2968: 2959:90-9003689-X 2949: 2943: 2922:cite journal 2910:. Retrieved 2897: 2874: 2865: 2839:. Retrieved 2835: 2826: 2814:. Retrieved 2810: 2801: 2789:. Retrieved 2785: 2776: 2762: 2754:the original 2744: 2736:the original 2726: 2718:the original 2708: 2696:. Retrieved 2687: 2675:. Retrieved 2671: 2662: 2582:as-patterns 2235:than Clean: 2230: 2127:13 July 1992 1770:October 1996 1575:January 1999 1018: 1011: 972: 951:web browsers 948: 932: 902: 890: 856:machine code 853: 825: 801: 698: 491: 356: 337: 321: 300:input/output 261: 248:Clean System 247: 243: 229: 228: 29: 3407:Categorical 3100:cloogle.org 2841:26 November 2816:26 November 2791:26 November 2698:20 November 2005:11 May 1993 1614:22 May 1998 1536:1 July 1999 1419:4 July 2002 1302:31 May 2005 963:WebAssembly 812:(x*x)^(n-1) 808:x*(x^(n-1)) 339:Hello world 3442:Categories 3272:JavaScript 3148:Comparison 3089:Clean Wiki 2654:References 1864:March 1996 959:JavaScript 913:imperative 702:operator: 326:(IDE) for 212:Influenced 107:2022-01-05 53:functional 3369:Smalltalk 3070:7 January 3049:7 January 3026:202751977 2319:operator 1653:June 1997 969:Platforms 915:abstract 850:Compiling 840:benchmark 838:. A 2008 832:reduction 804:x*x^(n-1) 358:Factorial 3427:Category 3193:Assembly 3153:Timeline 2983:13 April 2883:cite web 2247:Remarks 2241:Haskell 2182:May 1991 2040:release 1958:May 1995 1692:May 1997 1025:Version 1014:ObjectIO 334:Examples 312:compiler 292:currying 258:Features 48:Paradigm 3380:more... 3359:Scratch 3262:Haskell 3252:Fortran 3208:classic 3158:History 2677:23 July 1077:PowerPC 1067:AArch64 1047:Windows 1007:AArch64 993:), and 907:for an 885:Windows 268:Haskell 246:or the 218:Haskell 206:Haskell 202:Miranda 174:Website 153:License 134:dynamic 105: ( 80: ( 3399:Lists: 3334:Python 3329:Prolog 3307:Pascal 3297:MATLAB 3282:Kotlin 3242:Erlang 3181:Simula 3024:  3014:  2956:  2912:21 May 2832:"Home" 2244:Clean 2163:i80386 1994:i80386 1939:i80386 1806:i80386 1097:x86-64 1082:x86-64 1062:x86-64 1005:, and 1003:X86-64 991:X86-64 983:X86-64 881:linker 716:infixr 310:. The 308:monads 294:, and 280:guards 264:syntax 130:static 126:strong 3374:Swift 3364:Shell 3277:Julia 3247:Forth 3237:COBOL 3198:BASIC 3176:ALGOL 3044:Clean 3022:S2CID 2907:(PDF) 2811:Clean 2786:Clean 2782:"FAQ" 2672:Clean 2487:& 2463:=> 2393:Empty 2339:Empty 2276:isOdd 2258:isOdd 2218:SPARC 2216:3โ€“4 ( 2214:SunOS 2171:SPARC 2169:3โ€“4 ( 2167:SunOS 2084:0.8.1 2045:0.8.3 2001:0.8.4 1947:SPARC 1943:SunOS 1899:1.0.2 1853:SPARC 1849:SunOS 1813:1.1.2 1766:1.1.3 1688:1.2.3 1649:1.2.4 1571:1.3.1 1532:1.3.2 1493:1.3.3 1415:2.0.1 1376:2.0.2 1337:2.1.0 1298:2.1.1 1092:IA-32 1087:SPARC 1057:IA-32 1037:macOS 1032:Linux 1028:Date 999:IA-32 995:Linux 987:macOS 979:IA-32 939:Start 731:-> 700:Infix 681:Start 645:-> 621:-> 591:Start 513:-> 474:Start 453:-> 426:Start 378:-> 346:Start 232:is a 230:Clean 222:Idris 179:clean 33:Clean 3349:Rust 3344:Ruby 3319:Perl 3287:Lisp 3267:Java 3213:.NET 3072:2022 3051:2022 3012:ISBN 2985:2023 2954:ISBN 2935:help 2914:2016 2889:link 2843:2021 2818:2021 2793:2021 2700:2018 2679:2019 2629:> 2608:else 2602:then 2596:> 2558:Node 2519:Node 2420:Tree 2405:Tree 2399:Node 2384:Tree 2366:Tree 2351:Tree 2345:Node 2330:Tree 2327:data 2317:cons 2159:OS/2 1990:OS/2 1935:OS/2 1925:Yes 1839:Yes 1802:OS/2 1792:Yes 1636:Yes 1597:Yes 1558:Yes 1519:Yes 1441:Yes 1402:Yes 1363:Yes 1324:Yes 1291:Yes 1285:Yes 1252:Yes 1213:Yes 1204:Yes 1174:Yes 1165:Yes 1135:Yes 1126:Yes 1117:Yes 981:and 955:SAPL 933:The 830:and 663:fibs 624:fibs 609:fibs 468:prod 198:Lean 82:1987 75:1987 3354:SQL 3324:PHP 3292:Lua 3227:C++ 3188:APL 3171:Ada 3004:doi 2647:if 2576:... 2546:fun 2537:... 2507:fun 2475:... 2466:... 2210:No 2204:No 2201:No 2195:Yes 2192:No 2178:0.7 2165:); 2155:No 2149:No 2146:No 2140:Yes 2137:No 2123:0.8 2116:No 2110:No 2107:No 2101:Yes 2098:No 2077:No 2071:No 2068:No 2062:Yes 2059:No 2033:No 2027:No 2024:No 2018:Yes 2015:No 2009:Yes 1986:No 1980:No 1977:No 1971:Yes 1968:No 1954:1.0 1945:4 ( 1941:); 1931:No 1922:No 1916:Yes 1913:No 1907:Yes 1892:No 1886:No 1883:No 1877:Yes 1874:No 1868:Yes 1860:1.1 1851:4 ( 1845:No 1836:No 1827:No 1821:Yes 1798:No 1789:No 1780:No 1759:No 1753:No 1750:No 1747:Yes 1744:Yes 1741:No 1727:1.2 1720:No 1717:Yes 1714:No 1711:No 1708:Yes 1705:Yes 1702:No 1681:No 1678:Yes 1675:No 1672:No 1669:Yes 1666:Yes 1663:No 1642:No 1639:Yes 1633:No 1630:Yes 1624:No 1618:Yes 1610:1.3 1603:No 1600:Yes 1594:No 1591:Yes 1585:No 1579:Yes 1564:No 1561:Yes 1555:No 1552:Yes 1549:Yes 1546:No 1525:No 1522:Yes 1516:No 1513:Yes 1507:No 1501:Yes 1486:No 1483:Yes 1480:No 1477:No 1468:No 1454:2.0 1447:No 1444:Yes 1438:No 1435:Yes 1429:No 1423:Yes 1408:No 1405:Yes 1399:No 1396:Yes 1390:No 1384:Yes 1369:No 1366:Yes 1360:No 1357:Yes 1351:No 1345:Yes 1330:No 1327:Yes 1321:No 1318:Yes 1312:No 1306:Yes 1288:Yes 1282:No 1279:Yes 1273:No 1270:Yes 1267:Yes 1259:2.2 1249:Yes 1246:No 1243:No 1234:No 1231:Yes 1228:Yes 1220:2.3 1210:Yes 1207:No 1195:No 1192:Yes 1189:Yes 1181:2.4 1171:Yes 1168:No 1156:No 1153:Yes 1150:Yes 1142:3.0 1132:Yes 1129:No 1114:Yes 1111:Yes 1103:3.1 1009:). 985:), 734:Int 728:Int 725:Int 687:fib 651:fib 648:Int 642:Int 636:fib 630:x_1 627:x_2 618:Int 615:Int 597:fib 573:fib 552:fib 543:fib 531:fib 519:fib 516:Int 510:Int 504:fib 480:fac 459:fac 456:Int 450:Int 444:fac 432:fac 411:fac 396:fac 384:fac 381:Int 375:Int 369:fac 322:An 185:.nl 183:.ru 181:.cs 3444:: 3302:ML 3257:Go 3232:C# 3042:. 3020:. 3010:. 2976:. 2926:: 2924:}} 2920:{{ 2885:}} 2881:{{ 2873:. 2851:^ 2834:. 2809:. 2784:. 2670:. 2638:10 2632:10 2620:if 2605:10 2599:10 2590:if 2552:=: 2490:Eq 2481:Eq 2454:Eq 2445:Eq 2381::: 2304:xs 2220:) 2207:No 2198:No 2189:No 2186:No 2173:) 2152:No 2143:No 2134:No 2131:No 2113:No 2104:No 2095:No 2092:No 2074:No 2065:No 2056:No 2053:No 2030:No 2021:No 2012:No 1996:) 1983:No 1974:No 1965:No 1962:No 1949:) 1928:No 1919:No 1910:No 1889:No 1880:No 1871:No 1855:) 1842:No 1833:No 1830:No 1824:No 1808:) 1795:No 1786:No 1783:No 1777:No 1774:No 1756:No 1738:No 1735:No 1699:No 1696:No 1660:No 1657:No 1627:No 1621:No 1588:No 1582:No 1543:No 1540:No 1510:No 1504:No 1474:No 1471:No 1465:No 1462:No 1432:No 1426:No 1393:No 1387:No 1354:No 1348:No 1315:No 1309:No 1276:No 1240:No 1237:No 1201:No 1198:No 1162:No 1159:No 1123:No 1120:No 1001:, 818:. 794:-1 722::: 675:!! 639::: 612::: 507::: 495:: 483:10 447::: 435:10 420:-1 372::: 360:: 341:: 319:. 290:, 286:, 282:, 278:, 274:, 270:: 220:, 204:, 200:, 141:OS 132:, 128:, 3339:R 3222:C 3129:e 3122:t 3115:v 3074:. 3053:. 3028:. 3006:: 2987:. 2962:. 2937:) 2933:( 2916:. 2891:) 2845:. 2820:. 2795:. 2770:. 2702:. 2681:. 2641:x 2635:) 2626:x 2623:( 2611:x 2593:x 2573:= 2570:) 2567:r 2564:x 2561:l 2555:( 2549:t 2534:= 2531:) 2528:r 2525:x 2522:l 2516:( 2513:@ 2510:t 2493:b 2484:a 2478:| 2460:) 2457:b 2451:, 2448:a 2442:( 2426:) 2423:a 2417:( 2414:a 2411:) 2408:a 2402:( 2396:| 2390:= 2387:a 2372:) 2369:a 2363:( 2360:a 2357:) 2354:a 2348:( 2342:| 2336:= 2333:a 2301:: 2298:x 2282:] 2279:x 2273:| 2264:] 2261:x 2255:, 2161:( 1992:( 1937:( 1804:( 997:( 989:( 977:( 893:C 887:. 876:. 874:C 869:. 867:C 797:) 791:n 788:( 785:^ 782:x 779:* 776:x 773:= 770:n 767:x 764:) 761:^ 758:( 755:1 752:= 749:0 746:x 743:) 740:^ 737:( 719:8 713:) 710:^ 707:( 690:7 684:= 678:n 672:) 669:1 666:1 660:( 657:= 654:n 633:= 600:7 594:= 588:) 585:1 582:- 579:n 576:( 570:+ 567:) 564:2 561:- 558:n 555:( 549:= 546:n 540:1 537:= 534:1 528:1 525:= 522:0 477:= 465:= 462:n 429:= 423:) 417:n 414:( 408:* 405:n 402:= 399:n 393:1 390:= 387:0 349:= 109:) 84:) 20:)

Index

Clean programming language

Paradigm
functional
Designed by
Radboud University Nijmegen
Stable release
Typing discipline
strong
static
dynamic
OS
Cross-platform
License
Simplified BSD
Filename extensions
clean.cs.ru.nl
Lean
Miranda
Haskell
Haskell
Idris
general-purpose
purely functional
programming language
Radboud University
syntax
Haskell
referential transparency
list comprehension

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

โ†‘