⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coding.ml

📁 是一个手机功能的模拟程序
💻 ML
字号:
 exception End_iteration

type unicode_block =
  BASIC_LATIN1
| LATIN1_SUPPLEMENT
| LATIN_EXTENDED_A
| LATIN_EXTENDED_B
| IPA_EXTENSIONS
| SPACING_MODIFIER_LETTERS
| COMBINING_DIACRITICAL_MARKS
| GREEK
| CYRILLIC
| ARMENIAN
| HEBREW
| ARABIC
| SYRIAC
| THAANA
| DEVANAGARI
| BENGALI
| GURMUKHI
| GUJARATI
| ORIYA
| TAMIL
| TELUGU
| KANNADA
| MALAYALAM
| SINHALA
| THAI
| LAO
| TIBETAN
| MYANMAR
| GEORGIAN
| HANGUL_JAMO
| ETHIOPIC
| CHEROKEE
| UNIFIED_CANADIAN_ABORIGINAL
| OGHAM
| RUNIC
| KHMER
| MONGOLIAN
| LATIN_EXTENDED_ADDITIONAL
| GREEK_EXTENDED
| GENERAL_PUNCTUATION
| SUPER_SUB_SCRIPTS
| CURRENCY_SYMBOLS
| COMBINING_MARKS
| LETTERLIKE_SYMBOLS
| NUMBER_FORMS
| ARROWS
| MATHEMATICAL_OPERATORS
| MISC_TECHNICAL
| CONTROL_PICTURES
| OCR
| ENCLOSED_ALPHA
| BOX_DRAWING
| BLOCK_ELEMENTS
| GEOMETRIC_SHAPES
| MISC_SYMBOLS
| DINGBATS
| BRAILLE
| CJK_RADICAL_SUPPLEMENT
| KANGXI_RADICALS
| IDEOGRAPHIC_DESCRIPTION
| CJK_SYMBOLS
| HIRAGANA
| KATAKANA
| BOPOMOFO
| HANGUL_COMPATIBILITY
| KANBUN
| BOPOFOMO_EXTENDED
| ENCLOSED_CJK
| CJK_COMPATIBLITY
| CJK_UNIFIED_A
| CJK_UNIFIED
| YI_SYLLABLES
| YI_RADICALS
| HANGUL_SYLLABLES
| HIGH_SURROGATES
| LOW_SURROGATES
| PRIVATE_A
| CJK_COMPATIBILITY_IDEOGRAPHS
| ALPHABETIC_PRESENTATION
| ARABIC_PRESENTATION_A
| COMBINING_HALF_MARKS
| CJK_COMPATIBILITY_FORMS
| SMALL_FORM_VARIANTS
| ARABIC_PRESENTATION_B
| SPECIALS
| HALFWIDTH
| OLD_ITALIC
| GOTHIC
| DESERET
| BYZANTINE_MUSICAL
| MUSICAL_SYMBOLS
| MATH_ALPHANUM
| CJK_UNIFIED_B
| CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT
| TAGS
| PRIVATE_B
| PRIVATE_C
| SPECIALS_B
| HIGH_PRIVATE_SURROGATES

type interval = int*int

let interval_of_unicode_block b = match b with
  BASIC_LATIN1 -> (0x0000,0x007f)
| LATIN1_SUPPLEMENT -> (0x0080,0x00ff)
| LATIN_EXTENDED_A -> (0x0100,0x017f)
| LATIN_EXTENDED_B -> (0x0180,0x024f)
| IPA_EXTENSIONS -> (0x0250,0x02af)
| SPACING_MODIFIER_LETTERS -> (0x02b0,0x02ff)
| COMBINING_DIACRITICAL_MARKS -> (0x0300,0x036f)
| GREEK -> (0x0370,0x03ff)
| CYRILLIC -> (0x0400,0x04ff)
| ARMENIAN -> (0x0530,0x058f)
| HEBREW -> (0x0590,0x05ff)
| ARABIC -> (0x0600,0x06ff)
| SYRIAC -> (0x0700,0x074f)
| THAANA -> (0x0780,0x07bf)
| DEVANAGARI -> (0x0900,0x097f)
| BENGALI -> (0x0980,0x09ff)
| GURMUKHI -> (0x0a00,0x0a7f)
| GUJARATI -> (0x0a80,0x0aff)
| ORIYA -> (0x0b00,0x0b7f)
| TAMIL -> (0x0b80,0x0bff)
| TELUGU -> (0x0c00,0x0c7f)
| KANNADA -> (0x0c80,0x0cff)
| MALAYALAM -> (0x0d00,0x0d7f)
| SINHALA -> (0x0d80,0x0dff)
| THAI -> (0x0e00,0x0e7f)
| LAO -> (0x0e80,0x0eff)
| TIBETAN -> (0x0f00,0x0fff)
| MYANMAR -> (0x1000,0x109f)
| GEORGIAN -> (0x10a0,0x10ff)
| HANGUL_JAMO -> (0x1100,0x11ff)
| ETHIOPIC -> (0x1200,0x137f)
| CHEROKEE -> (0x13a0,0x13ff)
| UNIFIED_CANADIAN_ABORIGINAL -> (0x1400,0x167f)
| OGHAM -> (0x1680,0x169f)
| RUNIC -> (0x16a0,0x16ff)
| KHMER -> (0x1780,0x17ff)
| MONGOLIAN -> (0x1800,0x18af)
| LATIN_EXTENDED_ADDITIONAL -> (0x1e00,0x1eff)
| GREEK_EXTENDED -> (0x1f00,0x1fff)
| GENERAL_PUNCTUATION -> (0x2000,0x206f)
| SUPER_SUB_SCRIPTS -> (0x2070,0x209f)
| CURRENCY_SYMBOLS -> (0x20a0,0x20cf)
| COMBINING_MARKS -> (0x20d0,0x20ff)
| LETTERLIKE_SYMBOLS -> (0x2100,0x214f)
| NUMBER_FORMS -> (0x2150,0x218f)
| ARROWS -> (0x2190,0x21ff)
| MATHEMATICAL_OPERATORS -> (0x2200,0x22ff)
| MISC_TECHNICAL -> (0x2300,0x23ff)
| CONTROL_PICTURES -> (0x2400,0x243f)
| OCR -> (0x2440,0x245f)
| ENCLOSED_ALPHA -> (0x2460,0x24ff)
| BOX_DRAWING -> (0x2500,0x257f)
| BLOCK_ELEMENTS -> (0x2580,0x259f)
| GEOMETRIC_SHAPES -> (0x25a0,0x25ff)
| MISC_SYMBOLS -> (0x2600,0x26ff)
| DINGBATS -> (0x2700,0x27bf)
| BRAILLE -> (0x2800,0x28ff)
| CJK_RADICAL_SUPPLEMENT -> (0x2e80,0x2eff)
| KANGXI_RADICALS -> (0x2f00,0x2fdf)
| IDEOGRAPHIC_DESCRIPTION -> (0x2ff0,0x2fff)
| CJK_SYMBOLS -> (0x3000,0x303f)
| HIRAGANA -> (0x3040,0x309f)
| KATAKANA -> (0x30a0,0x30ff)
| BOPOMOFO -> (0x3100,0x312f)
| HANGUL_COMPATIBILITY -> (0x3130,0x318f)
| KANBUN -> (0x3190,0x319f)
| BOPOFOMO_EXTENDED -> (0x31a0,0x31bf)
| ENCLOSED_CJK -> (0x3200,0x32ff)
| CJK_COMPATIBLITY -> (0x3300,0x33ff)
| CJK_UNIFIED_A -> (0x3400,0x4db5)
| CJK_UNIFIED -> (0x4e00,0x9fff)
| YI_SYLLABLES -> (0xa000,0xa48f)
| YI_RADICALS -> (0xa490,0xa4cf)
| HANGUL_SYLLABLES -> (0xac00,0xd7a3)
| HIGH_SURROGATES -> (0xd800,0xdb7f)
| HIGH_PRIVATE_SURROGATES -> (0xdb80,0xdbff)
| LOW_SURROGATES -> (0xdc00,0xdfff)
| PRIVATE_A -> (0xe000,0xf8ff)
| CJK_COMPATIBILITY_IDEOGRAPHS -> (0xf900,0xfaff)
| ALPHABETIC_PRESENTATION -> (0xfb00,0xfb4f)
| ARABIC_PRESENTATION_A -> (0xfb50,0xfdff)
| COMBINING_HALF_MARKS -> (0xfe20,0xfe2f)
| CJK_COMPATIBILITY_FORMS -> (0xfe30,0xfe4f)
| SMALL_FORM_VARIANTS -> (0xfe50,0xfe6f)
| ARABIC_PRESENTATION_B -> (0xfe70,0xfefe)
| SPECIALS -> (0xfeff,0xfeff)
| HALFWIDTH -> (0xff00,0xffef)
| SPECIALS_B -> (0xfff0,0xfffd)
| OLD_ITALIC -> (0x10300,0x1032f)
| GOTHIC -> (0x10330,0x1034f)
| DESERET -> (0x10400,0x1044f)
| BYZANTINE_MUSICAL -> (0x1d000,0x1d0ff)
| MUSICAL_SYMBOLS -> (0x1d100,0x1d1ff)
| MATH_ALPHANUM -> (0x1d400,0x1d7ff)
| CJK_UNIFIED_B -> (0x20000,0x2a6d6)
| CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT -> (0x2f800,0x2fa1f)
| TAGS -> (0xe0000,0xe007f)
| PRIVATE_B -> (0xf0000,0xffffd)
| PRIVATE_C -> (0x100000,0x10fffd)

let interval_compare x y =
 let (xa,xb)= x
 and (ya,yb)= y in
 if x=y then 0 else
 begin
   if xa>yb then 1 else -1
 end

let new_iterator l =
  let state = ref (0) 
  and end_value = ref (-1) 
  and a_list = ref (List.sort interval_compare (List.map interval_of_unicode_block l)) in
  if not (List.mem (interval_of_unicode_block BASIC_LATIN1) !a_list) then
    a_list := List.rev_append [interval_of_unicode_block BASIC_LATIN1] !a_list;
  let  iter = function () ->
    if (!state = !end_value + 1) then
    begin
      match !a_list with
        hd::tl ->    let (a,b) = hd in
                     state := a;
                     end_value := b; 
                     a_list := tl
        | _ -> raise End_iteration
    end;
    let r = !state in
    state := !state + 1;
    r
  in iter
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -