CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Wed, 06 Aug 2025 20:06:49 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20090319010320
location: https://web.archive.org/web/20090319010320/https://github.com/kig/preludeml/tree
server-timing: captures_list;dur=0.724040, exclusion.robots;dur=0.027064, exclusion.robots.policy;dur=0.011297, esindex;dur=0.015300, cdx.remote;dur=22.064602, LoadShardBlock;dur=520.983886, PetaboxLoader3.datanode;dur=110.711917, PetaboxLoader3.resolve;dur=282.633886
x-app-server: wwwb-app221
x-ts: 302
x-tr: 579
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app221; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 301
server: nginx
date: Wed, 06 Aug 2025 20:06:51 GMT
content-type: text/html; charset=utf-8
content-length: 109
x-archive-orig-server: nginx/0.6.26
x-archive-orig-date: Thu, 19 Mar 2009 01:03:18 GMT
x-archive-orig-connection: close
x-archive-orig-status: 301 Moved Permanently
location: https://web.archive.org/web/20090319010320/https://github.com/kig/preludeml/tree/master
x-archive-orig-x-runtime: 18ms
x-archive-orig-cache-control: no-cache
x-archive-orig-content-length: 109
cache-control: max-age=1800
memento-datetime: Thu, 19 Mar 2009 01:03:20 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Sun, 05 Oct 2008 13:41:58 GMT", ; rel="prev memento"; datetime="Sun, 05 Oct 2008 13:41:58 GMT", ; rel="memento"; datetime="Thu, 19 Mar 2009 01:03:20 GMT", ; rel="next memento"; datetime="Sat, 08 Aug 2009 19:47:23 GMT", ; rel="last memento"; datetime="Sun, 06 May 2018 23:55:38 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_8_20090318195256_crawl102-c/52_8_20090319004626_crawl101.arc.gz
server-timing: captures_list;dur=0.470232, exclusion.robots;dur=0.016976, exclusion.robots.policy;dur=0.009364, esindex;dur=0.010209, cdx.remote;dur=19.392436, LoadShardBlock;dur=615.180762, PetaboxLoader3.datanode;dur=292.926991, PetaboxLoader3.resolve;dur=1103.917575, load_resource;dur=842.020648
x-app-server: wwwb-app221
x-ts: 301
x-tr: 1504
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Wed, 06 Aug 2025 20:06:52 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.6.31
x-archive-orig-date: Thu, 19 Mar 2009 01:03:20 GMT
x-archive-orig-connection: close
x-archive-orig-status: 200 OK
x-archive-orig-x-runtime: 1409ms
x-archive-orig-etag: "bb768037cfe2eb66a5812ea7c02cac02"
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-orig-content-length: 23564
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Thu, 19 Mar 2009 01:03:20 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Sun, 05 Oct 2008 13:41:58 GMT", ; rel="prev memento"; datetime="Mon, 02 Mar 2009 15:57:58 GMT", ; rel="memento"; datetime="Thu, 19 Mar 2009 01:03:20 GMT", ; rel="next memento"; datetime="Sat, 08 Aug 2009 19:47:23 GMT", ; rel="last memento"; datetime="Sat, 19 Aug 2023 18:11:36 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_8_20090318195256_crawl102-c/52_8_20090319004626_crawl101.arc.gz
server-timing: captures_list;dur=0.717185, exclusion.robots;dur=0.026546, exclusion.robots.policy;dur=0.011735, esindex;dur=0.017114, cdx.remote;dur=19.822277, LoadShardBlock;dur=493.397133, PetaboxLoader3.datanode;dur=173.713336, PetaboxLoader3.resolve;dur=485.305334, load_resource;dur=279.784568
x-app-server: wwwb-app221
x-ts: 200
x-tr: 868
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
kig's preludeml at master - GitHub
This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (

This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (

Description: | OCaml stdlib replacement with a Haskellish flavour |
Clone URL: |
git://github.com/kig/preludeml.git
Give this clone URL to anyone.
git clone git://github.com/kig/preludeml.git
|
name | age | message | |
---|---|---|---|
![]() |
.gitignore | Sun Jan 18 14:38:23 -0800 2009 | examples/bounded_space_mandelbrot.ml: showcases... [kig] |
![]() |
LICENSE | Sun Dec 21 22:21:06 -0800 2008 | license header in each file, LICENSE [kig] |
![]() |
OMakefile | Sun Jan 18 13:21:44 -0800 2009 | examples/blurred_mandelbrot: demonstrating para... [kig] |
![]() |
OMakeroot | Sun Sep 21 07:41:45 -0700 2008 | first versions of makefiles [Ilmari Heikkinen] |
![]() |
README | Wed Jan 28 23:20:40 -0800 2009 | README: note on backburner status [kig] |
![]() |
TESTING | Sun Jan 18 12:10:07 -0800 2009 | is(Execut|Read|Writ)able, tests for chmod and t... [kig] |
![]() |
bugs/ | Sun Jan 18 12:19:09 -0800 2009 | BUG added: [0005] integer averages overflow [kig] |
![]() |
examples/ | Sun Jan 18 14:38:23 -0800 2009 | examples/bounded_space_mandelbrot.ml: showcases... [kig] |
![]() |
src/ | Loading commit data... ![]() |
|
![]() |
test/ | Thu Jan 22 16:13:31 -0800 2009 | withCd, rm_r, catch, testing utils, tests for r... [kig] |
![]() |
tools/ |
Prelude.ml: an OCaml stdlib replacement with a Haskellish flavour. Requirements: pcre, netstring (ocaml-net) oUnit for the tests Compile: omake Run tests: omake test Run tests, printing out the test name before running it: omake test_verbose Released under the MIT license. Features -------- A more consistent interface across lists, arrays, strings and bytestrings. Bytestrings, strings wrapped in char_of_int / int_of_char. Parallel combinators for (1D) Bigarrays and the aforementioned collections. Shell command utilities. Filesystem utilities. Path utilities. IO utilities. User/group utilities. Time utilities. Function combinators, option combinators, exception combinators, tuple combinators, comparisons, conversions, recursions, floats, ints, hashes, maps, unfolds, folds, scans, spans, slices and subs. Everything in a single module for a very scripting language -like experience. I have aimed to keep the list functions tail-recursive, the trade-off between a speed loss from reversing lists and having support for arbitrary length lists weighing towards the latter in my scales. Some functions are implemented in a very combinatorial wanking -fashion and should be rewritten for speed and clarity. Alternatively I could say that they're good eta/beta-reduction tests for the compiler. Latest news ----------- - working on other stuff, will try to trickle in bug fixes when found, along with extra tests - done with writing a more complete set of tests for src/prelude.ml Examples -------- open Prelude (* my last modified file in /tmp *) lsFull "/tmp" |> filter (eq (currentUid ()) @. fileUid) |> maximumBy mtime (* concatenate files a, b and c into d *) concatFiles "d" ["a"; "b"; "c"] (* grep `find' output for AAC files *) readCmd ["find"; "music"] |> lines |> filter (xmatch "\\.m4[ap]$") (* fill a 100MB Bigarray with coreCount() parallel processes *) bapinit Bigarray.char (fun i -> chr (Unix.getpid() mod 256)) (int 10e8) (* blend two bytestrings together in parallel *) bpzipWith average2 s1 s2 (* the speed gains here are likely non-existent, as forking and marshalling overheads dominate the compute-poor blending function *) (* or written out as a parallel init that reads from the closure *) bpinit (fun i -> ((buget s1 i) + (buget s2 i)) / 2) (min (blen s1) (blen s2)) As you may notice, the different collections have different prefixes for the function names. List functions have no prefix, Array functions have 'a', String functions have 's', Bytestring functions have 'b' and Bigarray functions have 'ba'. Additionally, float functions use a 'f' suffix, e.g. sumf [1.0; 2.0] vs. sum [1; 2]. There are PreList, PreArray, PreString and Bytestring modules for the collections as well, but do note that they take some liberties with the argument orders of some functions in the name of easier composition, e.g. Array.init : int -> (int -> 'a) -> 'a array vs. PreArray.init : (int -> 'a) -> int -> 'a array. in map (PreArray.init id) (10--15) and map (fun i -> Array.init i id) (10--15) Development ----------- https://www.github.com/kig/preludeml/tree/master Contact ------- Ilmari Heikkinen <ilmari.heikkinen@gmail.com>
This feature is coming soon. Sit tight!