Files @ 31f510a88584
Branch filter:

Location: kallithea/rhodecode/public/js/mode/ocaml/index.html

Bradley M. Kuhn
Update minified YUI to version 2.9 built from Source.

yui.2.9.js used to be a minified version of YUI 2.9 until 5143b8df576c updated
it to something else and applied more aggresive minification. We stick to a
clean but minified version 2.9.

The license of YUI is BSD 3-clause, as described on
http://yuilibrary.com/license/ .

Since the minified version combines with GPLv3'd Javascript, it is only GPLv3'd
compliant to distribute this Object Code version with the Corresponding Source
(or offer therefor).

This yui.2.9.js is built from Source this way:
git clone https://github.com/yui/builder
git clone https://github.com/yui/yui2
cd yui2/
git checkout hudson-yui2-2800
ln -sf JumpToPageDropDown.js src/paginator/js/JumpToPageDropdown.js # work around inconsistent casing
rm -f tmp.js
for m in yahoo event dom connection animation dragdrop element datasource autocomplete container event-delegate json datatable paginator; do
rm -f build/$m/$m.js; ( cd src/$m && ant build deploybuild ) && sed -e 's,@VERSION@,2.9.0,g' -e 's,@BUILD@,2800,g' build/$m/$m.js >> tmp.js
done
java -jar ../builder/componentbuild/lib/yuicompressor/yuicompressor-2.4.4.jar tmp.js -o yui.2.9.js

The source is mirrored and available on https://kallithea-scm.org/repos/mirror .
<!doctype html>
<meta charset=utf-8>
<title>CodeMirror: OCaml mode</title>

<link rel=stylesheet href=../../lib/codemirror.css>
<link rel=stylesheet href=../../doc/docs.css>

<style type=text/css>
  .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
</style>

<script src=../../lib/codemirror.js></script>
<script src=../../addon/edit/matchbrackets.js></script>
<script src=ocaml.js></script>

<h1>CodeMirror: OCaml mode</h1>

<textarea id=code>
(* Summing a list of integers *)
let rec sum xs =
  match xs with
    | []       -&gt; 0
    | x :: xs' -&gt; x + sum xs'

(* Quicksort *)
let rec qsort = function
   | [] -&gt; []
   | pivot :: rest -&gt;
       let is_less x = x &lt; pivot in
       let left, right = List.partition is_less rest in
       qsort left @ [pivot] @ qsort right

(* Fibonacci Sequence *)
let rec fib_aux n a b =
  match n with
  | 0 -&gt; a
  | _ -&gt; fib_aux (n - 1) (a + b) a
let fib n = fib_aux n 0 1

(* Birthday paradox *)
let year_size = 365.

let rec birthday_paradox prob people =
    let prob' = (year_size -. float people) /. year_size *. prob  in
    if prob' &lt; 0.5 then
        Printf.printf "answer = %d\n" (people+1)
    else
        birthday_paradox prob' (people+1) ;;

birthday_paradox 1.0 1

(* Church numerals *)
let zero f x = x
let succ n f x = f (n f x)
let one = succ zero
let two = succ (succ zero)
let add n1 n2 f x = n1 f (n2 f x)
let to_string n = n (fun k -&gt; "S" ^ k) "0"
let _ = to_string (add (succ two) two)

(* Elementary functions *)
let square x = x * x;;
let rec fact x =
  if x &lt;= 1 then 1 else x * fact (x - 1);;

(* Automatic memory management *)
let l = 1 :: 2 :: 3 :: [];;
[1; 2; 3];;
5 :: l;;

(* Polymorphism: sorting lists *)
let rec sort = function
  | [] -&gt; []
  | x :: l -&gt; insert x (sort l)

and insert elem = function
  | [] -&gt; [elem]
  | x :: l -&gt;
      if elem &lt; x then elem :: x :: l else x :: insert elem l;;

(* Imperative features *)
let add_polynom p1 p2 =
  let n1 = Array.length p1
  and n2 = Array.length p2 in
  let result = Array.create (max n1 n2) 0 in
  for i = 0 to n1 - 1 do result.(i) &lt;- p1.(i) done;
  for i = 0 to n2 - 1 do result.(i) &lt;- result.(i) + p2.(i) done;
  result;;
add_polynom [| 1; 2 |] [| 1; 2; 3 |];;

(* We may redefine fact using a reference cell and a for loop *)
let fact n =
  let result = ref 1 in
  for i = 2 to n do
    result := i * !result
   done;
   !result;;
fact 5;;

(* Triangle (graphics) *)
let () =
  ignore( Glut.init Sys.argv );
  Glut.initDisplayMode ~double_buffer:true ();
  ignore (Glut.createWindow ~title:"OpenGL Demo");
  let angle t = 10. *. t *. t in
  let render () =
    GlClear.clear [ `color ];
    GlMat.load_identity ();
    GlMat.rotate ~angle: (angle (Sys.time ())) ~z:1. ();
    GlDraw.begins `triangles;
    List.iter GlDraw.vertex2 [-1., -1.; 0., 1.; 1., -1.];
    GlDraw.ends ();
    Glut.swapBuffers () in
  GlMat.mode `modelview;
  Glut.displayFunc ~cb:render;
  Glut.idleFunc ~cb:(Some Glut.postRedisplay);
  Glut.mainLoop ()

(* A Hundred Lines of Caml - http://caml.inria.fr/about/taste.en.html *)
(* OCaml page on Wikipedia - http://en.wikipedia.org/wiki/OCaml *)
</textarea>

<script>
  var editor = CodeMirror.fromTextArea(document.getElementById('code'), {
    mode: 'ocaml',
    lineNumbers: true,
    matchBrackets: true
  });
</script>

<p><strong>MIME types defined:</strong> <code>text/x-ocaml</code>.</p>