OCaml

OCaml — современный объектно-ориентированный язык функционального программирования общего назначения, который был разработан, принимая во внимание безопасность исполнения и надёжность программ. Этот язык имеет высокую степень выразительности, что позволяет его легко выучить и использовать. Язык CaML поддерживает функциональную, императивную и объектно-ориентированную парадигмы программирования. Был разработан в 1985 году во французском институте INRIA, который занимается исследованиями в области информатики.

На языке OCaml, в частности написан рендеринг формул Википедии, использующих тег <math>.

К достоинствам языка относят:

  • строгую типизацию;
  • развитую систему модулей;
  • автоматическую сборку мусора;
  • эффективность.

Пример исходного текста на OCaml (из файла math\texvc.ml)

exception LexerException of string
let lexer_token_safe lexbuf =
    try Lexer.token lexbuf
    with Failure s -> raise (LexerException s)

let render tmppath finalpath tree =
    let outtex = Util.mapjoin Texutil.render_tex tree in
    let md5 = Digest.to_hex (Digest.string outtex) in
    begin
        let mathml = Mathml.render tree
        and html = Html.render tree
        in print_string (match (html,!Html.conservativeness,mathml) with
            None,_,None -> "+" ^ md5 
          | Some h,Html.CONSERVATIVE,None -> "c" ^ md5  ^ h
          | Some h,Html.MODERATE,None -> "m" ^ md5  ^ h
          | Some h,Html.LIBERAL,None -> "l" ^ md5  ^ h
          | Some h,Html.CONSERVATIVE,Some m -> "C" ^ md5  ^ h ^ "\000" ^ m
          | Some h,Html.MODERATE,Some m -> "M" ^ md5  ^ h ^ "\000" ^ m
          | Some h,Html.LIBERAL,Some m -> "L" ^ md5 ^ h ^ "\000" ^ m
          | None,_,Some m -> "X" ^ md5   ^ m
        );
        Render.render tmppath finalpath outtex md5
    end

Ссылки


 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home