Advertisement

Sml#探検隊

Software Developer at スタンドファーム株式会社
Sep. 2, 2012
Advertisement

More Related Content

Advertisement

Similar to Sml#探検隊(20)

Advertisement

Recently uploaded(20)

Sml#探検隊

  1. SML#探検隊 @mzp 1
  2. @mzp 2
  3. おしらせ 3
  4. おしらせ 3
  5. 名古屋におけるSML#熱の高 まり 元々はOCaml/Coqユー ザが多かった 1年ぐらい前からSML#熱 が高まりつつある 4
  6. スタートSML# 1 Text 5
  7. スタートSML# 1 LT発表者 Text 5
  8. スタートSML# 2 a.k.a. SML# Hackathon 6
  9. 名古屋SML読書会 2回で消滅 7
  10. 名古屋SML読書会 2回で消滅 主催者 7
  11. 考察 名古屋の人たち 8
  12. 考察 SML# 好き 名古屋の人たち 8
  13. 考察 SML# 好き 興味ない 名古屋の人たち SML 8
  14. SML#の特徴 マスコットがかわいい 9
  15. SML#の特徴 多相レコード # fun get_x x = #x x; val get_x = fn : ['a#{x: 'b}, 'b. 'a -> 'b] # get_x { x = 1, y = 2 }; val it = 1 : int # get_x { x = 1, y = 2, z = 3 }; val it = 1 : int 10
  16. SML#の特徴 Cが呼べる # val puts = _import "puts" : string -> int; val puts = fn : string -> int # puts "hello"; hello val it = 10 : int 11
  17. SML#の特徴 コンパイラがコンパクト 400000 300000 200000 100000 0 ghc OCaml SML# 12
  18. 魔改造SML#: cop # op +; val it = <fun> : (int, int) -> int # cop +; val it = <fun> : int -> int -> int 13
  19. 魔改造SML#: annot 型情報の表示 詳しくは後述 14
  20. 魔改造SML#: LLVM(開発中) ↓開発中 @chunjp 15
  21. Try SML# http://proofcafe.org/trysmlsharp 16
  22. SML#+annotの紹介 17
  23. エディタの紹介 どのエディタが好きですか? or 18
  24. エディタの紹介 どのエディタが好きですか? or Emacs 18
  25. エディタの紹介 どのエディタが好きですか? or Emacs Eclipse 18
  26. エディタの紹介 どのエディタが好きですか? or Emacs Eclipse @keita44_f4 18
  27. Emacs v.s. Eclipse 19
  28. Emacs v.s. Eclipse 19
  29. Emacsだと型が分からない fun fact n = if n = 0 then 1 else n * fact (n - 1) 20
  30. Emacsだと型が分からない fun fact n = if n = 0 then 1 この型は? else n * fact (n - 1) 20
  31. 型が分からないと困る ..... struct structure MLLex = MLLexFun(structure Tokens = MLLrVals.Tokens) structure ParserData = MLLrVals.ParserData val makeLexer = fn s => fn arg => LrParser.Stream.streamify (MLLex.makeLexer s arg) val LrParse = fn (lookahead,lexer,error,arg) => (fn (a,b) => (MLLrVals.ParserData.Actions.extract a,b)) (LrParser.parse {table = ParserData.table, lexer=lexer, ..... 21
  32. 型が分からないと困る ..... struct structure MLLex = MLLexFun(structure Tokens = MLLrVals.Tokens) ?????? structure ParserData = MLLrVals.ParserData val makeLexer = fn s => fn arg => LrParser.Stream.streamify (MLLex.makeLexer s arg) val LrParse = fn (lookahead,lexer,error,arg) => (fn (a,b) => (MLLrVals.ParserData.Actions.extract a,b)) (LrParser.parse {table = ParserData.table, lexer=lexer, ..... 21
  33. 改造の方針 foo.sml SML#コンパイラ a.out 22
  34. 改造の方針 foo.sml SML#コンパイラ a.out foo.annot 22
  35. 改造の方針 foo.sml SML#コンパイラ a.out foo.annot 22
  36. LoadFile DatatypeCompilati doBitmapANormal doRTLX86Emit Elaboration doStaticAnalysis doClosureConversi doRTLX86AsmGen VALRECOptimizati doInlining toYAANormal doRTLX86Assembl FundeclElaboration doMVOptimization doYAANormalOpti TypeInference doFunctionLocalize doStaticAllocation UncurryOptimizatio doStaticAnalysis doAIGeneration2 PrinterGeneration doInlining doRTLX86Select MatchCompilation doMVOptimization doRTLX86Stabilize FFICompilation doFunctionLocalize doRTLRename RecordCompilation doBitmapCompilati doRTLX86Coloring
  37. LoadFile DatatypeCompilati doBitmapANormal doRTLX86Emit Elaboration doStaticAnalysis doClosureConversi doRTLX86AsmGen VALRECOptimizati doInlining toYAANormal doRTLX86Assembl FundeclElaboration doMVOptimization doYAANormalOpti TypeInference doFunctionLocalize doStaticAllocation UncurryOptimizatio doStaticAnalysis doAIGeneration2 PrinterGeneration doInlining doRTLX86Select MatchCompilation doMVOptimization doRTLX86Stabilize FFICompilation doFunctionLocalize doRTLRename RecordCompilation doBitmapCompilati doRTLX86Coloring
  38. 型推論直後を狙う Elaboration VALRECOptimization FundeclElaboration TypeInference UncurryOptimization 24
  39. 型推論直後を狙う Elaboration VALRECOptimization FundeclElaboration TypeInference UncurryOptimization 24
  40. 型推論直後を狙う Elaboration VALRECOptimization FundeclElaboration 型情報のダンプを TypeInference 追加する UncurryOptimization 24
  41. 宣言の型 src/compiler/typedcalc/main/TypedCalc.ppg.smi datatype tpdecl = ... | TPFUNDECL of { argTyList:Types.ty list, bodyTy:Types.ty, funVarInfo:Types.varInfo, ruleList:{args:tppat list, body:tpexp} list} list * Loc.loc | TPPOLYFUNDECL of Types.btvEnv * { argTyList:Types.ty list, bodyTy:Types.ty, funVarInfo:Types.varInfo, ruleList:{args:tppat list, body:tpexp} list} list * Loc.loc | TPVAL of (Types.varInfo * tpexp) list * Loc.loc 25
  42. 宣言の型 src/compiler/typedcalc/main/TypedCalc.ppg.smi datatype tpdecl = ... 型情報 | TPFUNDECL of { argTyList:Types.ty list, bodyTy:Types.ty, funVarInfo:Types.varInfo, ruleList:{args:tppat list, body:tpexp} list} list * Loc.loc | TPPOLYFUNDECL of Types.btvEnv * { argTyList:Types.ty list, bodyTy:Types.ty, funVarInfo:Types.varInfo, ruleList:{args:tppat list, body:tpexp} list} list * Loc.loc | TPVAL of (Types.varInfo * tpexp) list * Loc.loc 25
  43. 宣言の型 src/compiler/typedcalc/main/TypedCalc.ppg.smi datatype tpdecl = ... 型情報 | TPFUNDECL of { argTyList:Types.ty list, bodyTy:Types.ty, funVarInfo:Types.varInfo, 位置情報 ruleList:{args:tppat list, body:tpexp} list} list * Loc.loc | TPPOLYFUNDECL of Types.btvEnv * { argTyList:Types.ty list, bodyTy:Types.ty, funVarInfo:Types.varInfo, ruleList:{args:tppat list, body:tpexp} list} list * Loc.loc | TPVAL of (Types.varInfo * tpexp) list * Loc.loc 25
  44. 式の型 datatype tpexp = ... | TPSQLSERVER of {loc:Loc.loc, resultTy:Types.ty, schema:Types.ty LabelEnv.map LabelEnv.map, server:string} | TPTAPP of {exp:tpexp, expTy:Types.ty, instTyList:Types.ty list, loc:Loc.loc} | TPVAR of Types.varInfo * Loc.loc 26
  45. 式の型 datatype tpexp = ... | TPSQLSERVER of {loc:Loc.loc, resultTy:Types.ty, schema:Types.ty LabelEnv.map LabelEnv.map, server:string} | TPTAPP of {exp:tpexp, expTy:Types.ty, instTyList:Types.ty list, loc:Loc.loc} | TPVAR of Types.varInfo * Loc.loc 型情報 26
  46. 式の型 datatype tpexp = ... | TPSQLSERVER of {loc:Loc.loc, resultTy:Types.ty, schema:Types.ty LabelEnv.map LabelEnv.map, server:string} | TPTAPP of {exp:tpexp, expTy:Types.ty, instTyList:Types.ty list, loc:Loc.loc} | TPVAR of Types.varInfo * Loc.loc 型情報 位置情報 26
  47. 型の型・位置の型 structure Types = struct val tyToString : ty -> string end structure Loc = struct ... val fileNameOfPos : pos -> string val lineOfPos : pos -> int val colOfPos : pos -> int end 27
  48. 型情報のダンプ fun outputExpr stream (e : tpexp) =       case e of         TPAPPM {funTy, loc, funExp, argExpList, ...} =>         (annot stream loc funTy;          outputExpr stream funExp;          List.app (outputExpr stream) argExpList)       | TPCASEM {ruleBodyTy, loc, expList, ruleList, ...} =>         (annot stream loc ruleBodyTy;          List.app (outputExpr stream) expList;          List.app (fn x => outputExpr stream (#body x)) ruleList)       | TPCAST (exp, ty, loc) =>         (annot stream loc ty;          outputExpr stream exp)       | TPCONSTANT {loc, ty, ...} =>         annot stream loc ty       | TPDATACONSTRUCT {loc, con, argExpOpt, ...} =>         (annot stream loc (#ty con);          case argExpOpt of              SOME x =>              outputExpr stream x 28
  49.  | TPERROR =>        ()      | TPEXNCONSTRUCT {argExpOpt, exn,loc, ...} =>        (case exn of            EXEXN i =>            annot stream loc (#ty i)          | EXN i =>            annot stream loc (#ty i);         case argExpOpt of             SOME x =>             outputExpr stream x           | NONE =>             ())      | TPEXN_CONSTRUCTOR {exnInfo, loc} =>        annot stream loc (#ty exnInfo)      | TPEXEXN_CONSTRUCTOR {exExnInfo, loc} =>        annot stream loc (#ty exExnInfo)      | TPEXVAR (info, loc) =>        annot stream loc (#ty info)      | TPFFIIMPORT {loc, ptrExp:tpexp, stubTy:Types.ty,...} =>        (annot stream loc stubTy;         outputExpr stream ptrExp) 29
  50. |  | TPFNM {bodyExp, bodyTy, loc, ...} =>      (annot stream loc bodyTy;       outputExpr stream bodyExp)    | TPGLOBALSYMBOL {loc, ty, ...} =>      annot stream loc ty    | TPHANDLE {exnVar, exp, handler, loc} =>      (annot stream loc (#ty exnVar);       outputExpr stream exp;       outputExpr stream handler)    | TPLET {body, decls, loc, tys} =>      (List.app (outputExpr stream) body;       List.app (outputDecl stream) decls      )    | TPMODIFY {elementExp , loc, recordExp, recordTy, ...} =>      (annot stream loc recordTy;       outputExpr stream elementExp;       outputExpr stream recordExp)    | TPMONOLET { binds, bodyExp, loc} =>      (List.app (fn (_,exp) =>                    outputExpr stream exp) binds;       outputExpr stream bodyExp)    | TPOPRIMAPPLY {argExp, loc, oprimOp, ...} =>      (annot stream loc (#ty oprimOp);       outputExpr stream argExp)    | TPPOLY {exp, expTyWithoutTAbs, loc, ...} =>      (annot stream loc expTyWithoutTAbs;       outputExpr stream exp) 30    | TPPOLYFNM {bodyExp, bodyTy, loc, ...} =>
  51. スイッチ src/compiler/control/main/Control.ppg val annot = ref false val switchTable : switchTable = [  ....  ("annot", BoolSwitch annot) ] src/compiler/toplevel2/main/Top.sml if ! Control.annot then   Annot.dump tpcalc else   () 31
  52. 使い方 $ ls fact.sml $ smlsharp -d annot=yes fact.sml $ ls a.out fact.sml fact.annot 32
  53. EmacsLisp 33
  54. デモ 34
  55. 今後の目標 変数の参照元ジャンプ 多相レコードの表示 35
  56. 開発Tips --enable-fast-build は意味がない make -jは失敗する 36
  57. 開発Tips for Windows Mingwでのビルドは無理 37
  58. 開発Tips for Windows Mingwでのビルドは無理 Ubuntu(32bit)を使おう 37
  59. 開発Tips for MacOS X 64bitでのビルドは難しい 38
  60. 開発Tips for MacOS X 64bitでのビルドは難しい Ubuntu(32bit)を使おう 38
  61. まとめ 今、SML#がアツい SML#を改造するの楽しい 型情報を表示する拡張をいれた (Emacsのみ) 改造するときはLinuxでやろう 39

Editor's Notes

  1. \n
  2. Twitter&amp;#x3068;&amp;#x304B;Github&amp;#x306F;&amp;#x3053;&amp;#x3093;&amp;#x306A;&amp;#x30A2;&amp;#x30A4;&amp;#x30B3;&amp;#x30F3;&amp;#x3067;&amp;#x3084;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x540D;&amp;#x53E4;&amp;#x5C4B;&amp;#x304B;&amp;#x3089;&amp;#x6C7A;&amp;#x307E;&amp;#x3057;&amp;#x305F;&amp;#x3002;\n
  3. ProofGeneral&amp;#x3055;&amp;#x3093;&amp;#x304C;&amp;#x304B;&amp;#x308F;&amp;#x3044;&amp;#x304F;&amp;#x306A;&amp;#x308A;&amp;#x307E;&amp;#x3057;&amp;#x305F;&amp;#x3002;\n&amp;#x30B7;&amp;#x30FC;&amp;#x30EB;&amp;#x304F;&amp;#x3070;&amp;#x3063;&amp;#x3066;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n\n
  4. \n
  5. &amp;#x30FB;&amp;#x30B9;&amp;#x30BF;&amp;#x30FC;&amp;#x30C8;&amp;#x7CFB;&amp;#x30A4;&amp;#x30D9;&amp;#x30F3;&amp;#x30C8;&amp;#x306B;&amp;#x306E;&amp;#x3063;&amp;#x304B;&amp;#x3063;&amp;#x3066;&amp;#x307F;&amp;#x305F;&amp;#x3002;(33&amp;#x4EBA;)\n&amp;#x30FB;&amp;#x5927;&amp;#x5800;&amp;#x5148;&amp;#x751F;&amp;#x3068;&amp;#x4E0A;&amp;#x91CE;&amp;#x3055;&amp;#x3093;&amp;#x307E;&amp;#x3067;&amp;#x6765;&amp;#x305F;&amp;#x8C6A;&amp;#x83EF;&amp;#x30B9;&amp;#x30D4;&amp;#x30FC;&amp;#x30AB;&amp;#x30FC;\n--\n&amp;#x30FB;&amp;#x65B0;&amp;#x3057;&amp;#x3044;LT&amp;#x30B9;&amp;#x30BF;&amp;#x30A4;&amp;#x30EB;&amp;#x304C;&amp;#x3046;&amp;#x307E;&amp;#x308C;&amp;#x305F;\n
  6. &amp;#x30FB;&amp;#x540D;&amp;#x53E4;&amp;#x5C4B;&amp;#x306B;&amp;#x306F;&amp;#x3069;&amp;#x3048;&amp;#x308A;&amp;#x3083;&amp;#x3042;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x30AB;&amp;#x30D5;&amp;#x30A7;&amp;#x304C;&amp;#x3042;&amp;#x3063;&amp;#x305F;&amp;#x3093;&amp;#x3067;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x305D;&amp;#x3053;&amp;#x3067;10&amp;#x4EBA;&amp;#x304F;&amp;#x3089;&amp;#x3044;&amp;#x3067;&amp;#x30CF;&amp;#x30C3;&amp;#x30AB;&amp;#x30F3;&amp;#x3084;&amp;#x308A;&amp;#x307E;&amp;#x3057;&amp;#x305F;&amp;#x3002;\n&amp;#x30FB;SML#&amp;#x30B3;&amp;#x30F3;&amp;#x30D1;&amp;#x30A4;&amp;#x30E9;&amp;#x3092;&amp;#x6539;&amp;#x9020;&amp;#x3059;&amp;#x308B;&amp;#x4F1A;\n&amp;#x30FB;&amp;#x3053;&amp;#x306E;&amp;#x3068;&amp;#x304D;&amp;#x306E;&amp;#x6210;&amp;#x679C;&amp;#x7269;&amp;#x306B;&amp;#x3064;&amp;#x3044;&amp;#x3066;&amp;#x306F;&amp;#x3042;&amp;#x3068;&amp;#x3067;&amp;#x3066;&amp;#x8A71;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  7. &amp;#x5927;&amp;#x5800;&amp;#x672C;&amp;#x306E;&amp;#x8AAD;&amp;#x66F8;&amp;#x4F1A;\n
  8. &amp;#x540D;&amp;#x53E4;&amp;#x5C4B;&amp;#x306E;&amp;#x4EBA;&amp;#x305F;&amp;#x3061;&amp;#x306F;SML#&amp;#x306F;&amp;#x597D;&amp;#x304D;&amp;#x3060;&amp;#x3051;&amp;#x3069;SML&amp;#x306B;&amp;#x306F;&amp;#x8208;&amp;#x5473;&amp;#x306A;&amp;#x3044;\n
  9. &amp;#x540D;&amp;#x53E4;&amp;#x5C4B;&amp;#x306E;&amp;#x4EBA;&amp;#x305F;&amp;#x3061;&amp;#x306F;SML#&amp;#x306F;&amp;#x597D;&amp;#x304D;&amp;#x3060;&amp;#x3051;&amp;#x3069;SML&amp;#x306B;&amp;#x306F;&amp;#x8208;&amp;#x5473;&amp;#x306A;&amp;#x3044;\n
  10. &amp;#x30FB;&amp;#x304A;&amp;#x304A;&amp;#x307B;&amp;#x308A;&amp;#x5148;&amp;#x751F;&amp;#x306E;&amp;#x5A18;&amp;#x3055;&amp;#x3093;&amp;#x304C;&amp;#x304B;&amp;#x3044;&amp;#x305F;\n&amp;#x30FB;not BSD\n
  11. &amp;#x30FB;&amp;#x5168;&amp;#x90E8;&amp;#x306E;&amp;#x30EC;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x306B;id&amp;#x3068;&amp;#x304B;name&amp;#x3068;&amp;#x304B;&amp;#x3064;&amp;#x3051;&amp;#x3066;&amp;#x3082;&amp;#x5927;&amp;#x4E08;&amp;#x592B;&amp;#x201D;&amp;#x201D;\n
  12. \n
  13. &amp;#x30FB;OCaml 296,591&amp;#x3001;SML# 152,523&amp;#x3001;GHC 364,766\n&amp;#x30FB;&amp;#x5358;&amp;#x7D14;&amp;#x306A;&amp;#x6BD4;&amp;#x8F03;&amp;#x306F;&amp;#x3067;&amp;#x304D;&amp;#x306A;&amp;#x3044;\n&amp;#x30FB;&amp;#x6539;&amp;#x9020;&amp;#x3057;&amp;#x3084;&amp;#x3059;&amp;#x3044;\n
  14. SML&amp;#x306E;op&amp;#x306F;Haskell&amp;#x3084;OCaml&amp;#x306E;&amp;#x4EBA;&amp;#x306B;&amp;#x306F;&amp;#x9055;&amp;#x548C;&amp;#x611F;&amp;#x304C;&amp;#x3042;&amp;#x308B;\ncop = curried operator\n
  15. \n
  16. \n
  17. &amp;#x30FB;&amp;#x30D6;&amp;#x30E9;&amp;#x30A6;&amp;#x30B6;&amp;#x4E0A;&amp;#x3067;&amp;#x8A66;&amp;#x305B;&amp;#x308B;\n&amp;#x30FB;&amp;#x30B5;&amp;#x30F3;&amp;#x30C9;&amp;#x30DC;&amp;#x30C3;&amp;#x30AF;&amp;#x30B9;&amp;#x5185;&amp;#x3067;&amp;#x5B9F;&amp;#x884C;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x308B;\n&amp;#x30FB;SML#&amp;#x30B3;&amp;#x30F3;&amp;#x30D1;&amp;#x30A4;&amp;#x30E9;&amp;#x81EA;&amp;#x4F53;&amp;#x306B;&amp;#x306F;&amp;#x3001;&amp;#x7D50;&amp;#x5C40;&amp;#x624B;&amp;#x3092;&amp;#x3044;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x306A;&amp;#x3044;\n
  18. \n
  19. &amp;#x30FB;&amp;#x30E1;&amp;#x30E2;&amp;#x5E33;&amp;#x3067;Haskell&amp;#x66F8;&amp;#x3044;&amp;#x3066;&amp;#x3044;&amp;#x305F;&amp;#x4EBA;&amp;#x3092;&amp;#x500B;&amp;#x4EBA;&amp;#x7684;&amp;#x306B;&amp;#x77E5;&amp;#x3063;&amp;#x3066;&amp;#x307E;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x666E;&amp;#x901A;&amp;#x306E;&amp;#x4EBA;&amp;#x306F;&amp;#x30A8;&amp;#x30C7;&amp;#x30A3;&amp;#x30BF;&amp;#x3092;&amp;#x4F7F;&amp;#x3046;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x4E16;&amp;#x754C;&amp;#x306B;&amp;#x306F;2&amp;#x3064;&amp;#x306E;&amp;#x30A8;&amp;#x30C7;&amp;#x30A3;&amp;#x30BF;&amp;#x304C;&amp;#x3042;&amp;#x308B;&amp;#x3002;&amp;#x3069;&amp;#x3061;&amp;#x3089;&amp;#x304C;&amp;#x597D;&amp;#x304D;&amp;#x3067;&amp;#x3059;&amp;#x304B;\n---\n&amp;#x30FB;emacs: sml-mode\n---\n&amp;#x30FB;Eclipse\n----\n&amp;#x30FB;&amp;#x3088;&amp;#x3093;&amp;#x305F;&amp;#x3055;&amp;#x3093;&amp;#x304C;&amp;#x4F5C;&amp;#x3063;&amp;#x3066;&amp;#x305F;&amp;#x3002;&amp;#x6700;&amp;#x65B0;&amp;#x7248;&amp;#x306E;SML#&amp;#x3067;&amp;#x306F;&amp;#x52D5;&amp;#x304B;&amp;#x306A;&amp;#x3044;&amp;#x3089;&amp;#x3057;&amp;#x3044;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x4F7F;&amp;#x3044;&amp;#x305F;&amp;#x3044;&amp;#x3072;&amp;#x3068;&amp;#x306F;&amp;#x5F7C;&amp;#x306B;mention&amp;#x3092;&amp;#x9001;&amp;#x308A;&amp;#x307E;&amp;#x3057;&amp;#x3087;&amp;#x3046;&amp;#x3002;\n
  20. &amp;#x30FB;&amp;#x30E1;&amp;#x30E2;&amp;#x5E33;&amp;#x3067;Haskell&amp;#x66F8;&amp;#x3044;&amp;#x3066;&amp;#x3044;&amp;#x305F;&amp;#x4EBA;&amp;#x3092;&amp;#x500B;&amp;#x4EBA;&amp;#x7684;&amp;#x306B;&amp;#x77E5;&amp;#x3063;&amp;#x3066;&amp;#x307E;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x666E;&amp;#x901A;&amp;#x306E;&amp;#x4EBA;&amp;#x306F;&amp;#x30A8;&amp;#x30C7;&amp;#x30A3;&amp;#x30BF;&amp;#x3092;&amp;#x4F7F;&amp;#x3046;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x4E16;&amp;#x754C;&amp;#x306B;&amp;#x306F;2&amp;#x3064;&amp;#x306E;&amp;#x30A8;&amp;#x30C7;&amp;#x30A3;&amp;#x30BF;&amp;#x304C;&amp;#x3042;&amp;#x308B;&amp;#x3002;&amp;#x3069;&amp;#x3061;&amp;#x3089;&amp;#x304C;&amp;#x597D;&amp;#x304D;&amp;#x3067;&amp;#x3059;&amp;#x304B;\n---\n&amp;#x30FB;emacs: sml-mode\n---\n&amp;#x30FB;Eclipse\n----\n&amp;#x30FB;&amp;#x3088;&amp;#x3093;&amp;#x305F;&amp;#x3055;&amp;#x3093;&amp;#x304C;&amp;#x4F5C;&amp;#x3063;&amp;#x3066;&amp;#x305F;&amp;#x3002;&amp;#x6700;&amp;#x65B0;&amp;#x7248;&amp;#x306E;SML#&amp;#x3067;&amp;#x306F;&amp;#x52D5;&amp;#x304B;&amp;#x306A;&amp;#x3044;&amp;#x3089;&amp;#x3057;&amp;#x3044;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x4F7F;&amp;#x3044;&amp;#x305F;&amp;#x3044;&amp;#x3072;&amp;#x3068;&amp;#x306F;&amp;#x5F7C;&amp;#x306B;mention&amp;#x3092;&amp;#x9001;&amp;#x308A;&amp;#x307E;&amp;#x3057;&amp;#x3087;&amp;#x3046;&amp;#x3002;\n
  21. &amp;#x30FB;&amp;#x30E1;&amp;#x30E2;&amp;#x5E33;&amp;#x3067;Haskell&amp;#x66F8;&amp;#x3044;&amp;#x3066;&amp;#x3044;&amp;#x305F;&amp;#x4EBA;&amp;#x3092;&amp;#x500B;&amp;#x4EBA;&amp;#x7684;&amp;#x306B;&amp;#x77E5;&amp;#x3063;&amp;#x3066;&amp;#x307E;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x666E;&amp;#x901A;&amp;#x306E;&amp;#x4EBA;&amp;#x306F;&amp;#x30A8;&amp;#x30C7;&amp;#x30A3;&amp;#x30BF;&amp;#x3092;&amp;#x4F7F;&amp;#x3046;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x4E16;&amp;#x754C;&amp;#x306B;&amp;#x306F;2&amp;#x3064;&amp;#x306E;&amp;#x30A8;&amp;#x30C7;&amp;#x30A3;&amp;#x30BF;&amp;#x304C;&amp;#x3042;&amp;#x308B;&amp;#x3002;&amp;#x3069;&amp;#x3061;&amp;#x3089;&amp;#x304C;&amp;#x597D;&amp;#x304D;&amp;#x3067;&amp;#x3059;&amp;#x304B;\n---\n&amp;#x30FB;emacs: sml-mode\n---\n&amp;#x30FB;Eclipse\n----\n&amp;#x30FB;&amp;#x3088;&amp;#x3093;&amp;#x305F;&amp;#x3055;&amp;#x3093;&amp;#x304C;&amp;#x4F5C;&amp;#x3063;&amp;#x3066;&amp;#x305F;&amp;#x3002;&amp;#x6700;&amp;#x65B0;&amp;#x7248;&amp;#x306E;SML#&amp;#x3067;&amp;#x306F;&amp;#x52D5;&amp;#x304B;&amp;#x306A;&amp;#x3044;&amp;#x3089;&amp;#x3057;&amp;#x3044;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x4F7F;&amp;#x3044;&amp;#x305F;&amp;#x3044;&amp;#x3072;&amp;#x3068;&amp;#x306F;&amp;#x5F7C;&amp;#x306B;mention&amp;#x3092;&amp;#x9001;&amp;#x308A;&amp;#x307E;&amp;#x3057;&amp;#x3087;&amp;#x3046;&amp;#x3002;\n
  22. &amp;#x9078;&amp;#x629E;&amp;#x80A2;&amp;#x304C;2&amp;#x3064;&amp;#x3042;&amp;#x308B;&amp;#x306A;&amp;#x3089;&amp;#x6BD4;&amp;#x8F03;&amp;#x3057;&amp;#x306A;&amp;#x3044;&amp;#x3068;&amp;#x3044;&amp;#x3051;&amp;#x307E;&amp;#x305B;&amp;#x3093;&amp;#x3002;\n
  23. \n
  24. &amp;#x30FB;fact&amp;#x3050;&amp;#x3089;&amp;#x3044;&amp;#x306A;&amp;#x3089;&amp;#x307E;&amp;#x3060;&amp;#x3057;&amp;#x3082;&amp;#x30EA;&amp;#x30A2;&amp;#x30EB;&amp;#x306A;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3060;&amp;#x3068;&amp;#x578B;&amp;#x304C;&amp;#x308F;&amp;#x304B;&amp;#x3089;&amp;#x306A;&amp;#x304F;&amp;#x306A;&amp;#x3063;&amp;#x3066;&amp;#x3057;&amp;#x307E;&amp;#x3046;&amp;#x3002;\n&amp;#x30FB;&amp;#x3069;&amp;#x3046;&amp;#x3084;&amp;#x3063;&amp;#x3066;&amp;#x3082;&amp;#x7121;&amp;#x7406;&amp;#x306A;&amp;#x3089;&amp;#x307E;&amp;#x3060;&amp;#x8AE6;&amp;#x3081;&amp;#x304C;&amp;#x4ED8;&amp;#x304F;&amp;#x308F;&amp;#x3051;&amp;#x3067;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x5404;&amp;#x5909;&amp;#x6570;&amp;#x306E;&amp;#x578B;&amp;#x60C5;&amp;#x306F;&amp;#x30B3;&amp;#x30F3;&amp;#x30D1;&amp;#x30A4;&amp;#x30E9;&amp;#x306F;&amp;#x77E5;&amp;#x3063;&amp;#x3066;&amp;#x308B;&amp;#x3002;\n&amp;#x30FB;&amp;#x306A;&amp;#x306E;&amp;#x3067;&amp;#x30B3;&amp;#x30F3;&amp;#x30D1;&amp;#x30A4;&amp;#x30E9;&amp;#x3092;&amp;#x6539;&amp;#x9020;&amp;#x3057;&amp;#x3066;&amp;#x3001;&amp;#x305D;&amp;#x306E;&amp;#x60C5;&amp;#x5831;&amp;#x3092;&amp;#x5916;&amp;#x304B;&amp;#x3089;&amp;#x4F7F;&amp;#x3048;&amp;#x308B;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  25. &amp;#x666E;&amp;#x901A;&amp;#x306F;&amp;#x30BD;&amp;#x30FC;&amp;#x30B9;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x30B3;&amp;#x30F3;&amp;#x30D1;&amp;#x30A4;&amp;#x30EB;&amp;#x3057;&amp;#x3066;&amp;#x5B9F;&amp;#x884C;&amp;#x30D5;&amp;#x30A1;&amp;#x30A4;&amp;#x30EB;&amp;#x3092;&amp;#x751F;&amp;#x6210;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n--\n&amp;#x30B3;&amp;#x30F3;&amp;#x30D1;&amp;#x30A4;&amp;#x30E9;&amp;#x3092;&amp;#x6539;&amp;#x9020;&amp;#x3057;&amp;#x3066;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x3092;&amp;#x30C0;&amp;#x30F3;&amp;#x30D7;&amp;#x3057;&amp;#x305F;annot&amp;#x30D5;&amp;#x30A1;&amp;#x30A4;&amp;#x30EB;&amp;#x3082;&amp;#x751F;&amp;#x6210;&amp;#x3059;&amp;#x308B;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x305D;&amp;#x308C;&amp;#x3092;emacs&amp;#x304B;&amp;#x3089;&amp;#x8AAD;&amp;#x307F;&amp;#x3053;&amp;#x3080;&amp;#x3053;&amp;#x3068;&amp;#x3067;&amp;#x3001;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x306E;&amp;#x8868;&amp;#x793A;&amp;#x3092;&amp;#x5B9F;&amp;#x73FE;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  26. &amp;#x666E;&amp;#x901A;&amp;#x306F;&amp;#x30BD;&amp;#x30FC;&amp;#x30B9;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x30B3;&amp;#x30F3;&amp;#x30D1;&amp;#x30A4;&amp;#x30EB;&amp;#x3057;&amp;#x3066;&amp;#x5B9F;&amp;#x884C;&amp;#x30D5;&amp;#x30A1;&amp;#x30A4;&amp;#x30EB;&amp;#x3092;&amp;#x751F;&amp;#x6210;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n--\n&amp;#x30B3;&amp;#x30F3;&amp;#x30D1;&amp;#x30A4;&amp;#x30E9;&amp;#x3092;&amp;#x6539;&amp;#x9020;&amp;#x3057;&amp;#x3066;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x3092;&amp;#x30C0;&amp;#x30F3;&amp;#x30D7;&amp;#x3057;&amp;#x305F;annot&amp;#x30D5;&amp;#x30A1;&amp;#x30A4;&amp;#x30EB;&amp;#x3082;&amp;#x751F;&amp;#x6210;&amp;#x3059;&amp;#x308B;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x305D;&amp;#x308C;&amp;#x3092;emacs&amp;#x304B;&amp;#x3089;&amp;#x8AAD;&amp;#x307F;&amp;#x3053;&amp;#x3080;&amp;#x3053;&amp;#x3068;&amp;#x3067;&amp;#x3001;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x306E;&amp;#x8868;&amp;#x793A;&amp;#x3092;&amp;#x5B9F;&amp;#x73FE;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  27. SML#&amp;#x30B3;&amp;#x30F3;&amp;#x30D1;&amp;#x30A4;&amp;#x30E9;&amp;#x3001;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x304B;&amp;#x30B3;&amp;#x30F3;&amp;#x30D1;&amp;#x30A4;&amp;#x30E9;&amp;#x306F;&amp;#x8907;&amp;#x6570;&amp;#x306E;&amp;#x30D1;&amp;#x30B9;&amp;#x306B;&amp;#x3088;&amp;#x3063;&amp;#x3066;&amp;#x69CB;&amp;#x6210;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\nSML#&amp;#x30B3;&amp;#x30F3;&amp;#x30D1;&amp;#x30A4;&amp;#x30E9;&amp;#x306E;&amp;#x5834;&amp;#x5408;&amp;#x3001;&amp;#x3053;&amp;#x3093;&amp;#x306A;&amp;#x611F;&amp;#x3058;&amp;#x306B;&amp;#x306A;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;(&amp;#x3061;&amp;#x3087;&amp;#x3063;&amp;#x3068;&amp;#x5F85;&amp;#x3064;)\n
  28. &amp;#x4ECA;&amp;#x56DE;&amp;#x306F;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x306E;&amp;#x30C0;&amp;#x30F3;&amp;#x30D7;&amp;#x304C;&amp;#x76EE;&amp;#x7684;&amp;#x306A;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x5F8C;&amp;#x534A;&amp;#x306E;&amp;#x6700;&amp;#x9069;&amp;#x5316;&amp;#x3084;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x751F;&amp;#x6210;&amp;#x306F;&amp;#x7121;&amp;#x8996;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x3067;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x306E;&amp;#x307B;&amp;#x3046;&amp;#x3092;&amp;#x898B;&amp;#x308B;&amp;#x3068;&amp;#x3061;&amp;#x3087;&amp;#x3046;&amp;#x3069;&amp;#x578B;&amp;#x63A8;&amp;#x8AD6;&amp;#x3092;&amp;#x3084;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x30D1;&amp;#x30B9;&amp;#x304C;&amp;#x898B;&amp;#x3064;&amp;#x304B;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n--\n&amp;#x3053;&amp;#x306E;&amp;#x578B;&amp;#x63A8;&amp;#x8AD6;&amp;#x304C;&amp;#x304A;&amp;#x308F;&amp;#x3063;&amp;#x305F;&amp;#x76F4;&amp;#x5F8C;&amp;#x306B;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x3092;&amp;#x30C0;&amp;#x30F3;&amp;#x30D7;&amp;#x3057;&amp;#x3066;&amp;#x3084;&amp;#x308C;&amp;#x3070;&amp;#x3088;&amp;#x3055;&amp;#x305D;&amp;#x3046;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n--\n&amp;#x306A;&amp;#x306E;&amp;#x3067;&amp;#x3053;&amp;#x306E;&amp;#x3042;&amp;#x3068;&amp;#x306B;&amp;#x51E6;&amp;#x7406;&amp;#x3092;&amp;#x8FFD;&amp;#x52A0;&amp;#x3057;&amp;#x3066;&amp;#x3001;&amp;#x30C0;&amp;#x30F3;&amp;#x30D7;&amp;#x3067;&amp;#x304D;&amp;#x308B;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  29. &amp;#x4ECA;&amp;#x56DE;&amp;#x306F;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x306E;&amp;#x30C0;&amp;#x30F3;&amp;#x30D7;&amp;#x304C;&amp;#x76EE;&amp;#x7684;&amp;#x306A;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x5F8C;&amp;#x534A;&amp;#x306E;&amp;#x6700;&amp;#x9069;&amp;#x5316;&amp;#x3084;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x751F;&amp;#x6210;&amp;#x306F;&amp;#x7121;&amp;#x8996;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x3067;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x306E;&amp;#x307B;&amp;#x3046;&amp;#x3092;&amp;#x898B;&amp;#x308B;&amp;#x3068;&amp;#x3061;&amp;#x3087;&amp;#x3046;&amp;#x3069;&amp;#x578B;&amp;#x63A8;&amp;#x8AD6;&amp;#x3092;&amp;#x3084;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x30D1;&amp;#x30B9;&amp;#x304C;&amp;#x898B;&amp;#x3064;&amp;#x304B;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n--\n&amp;#x3053;&amp;#x306E;&amp;#x578B;&amp;#x63A8;&amp;#x8AD6;&amp;#x304C;&amp;#x304A;&amp;#x308F;&amp;#x3063;&amp;#x305F;&amp;#x76F4;&amp;#x5F8C;&amp;#x306B;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x3092;&amp;#x30C0;&amp;#x30F3;&amp;#x30D7;&amp;#x3057;&amp;#x3066;&amp;#x3084;&amp;#x308C;&amp;#x3070;&amp;#x3088;&amp;#x3055;&amp;#x305D;&amp;#x3046;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n--\n&amp;#x306A;&amp;#x306E;&amp;#x3067;&amp;#x3053;&amp;#x306E;&amp;#x3042;&amp;#x3068;&amp;#x306B;&amp;#x51E6;&amp;#x7406;&amp;#x3092;&amp;#x8FFD;&amp;#x52A0;&amp;#x3057;&amp;#x3066;&amp;#x3001;&amp;#x30C0;&amp;#x30F3;&amp;#x30D7;&amp;#x3067;&amp;#x304D;&amp;#x308B;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  30. \n
  31. \n
  32. \n
  33. &amp;#x30FB;&amp;#x5BA3;&amp;#x8A00;&amp;#x306E;&amp;#x578B;&amp;#x306F;&amp;#x3053;&amp;#x3093;&amp;#x306A;&amp;#x611F;&amp;#x3058;&amp;#x306B;&amp;#x306A;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x30D5;&amp;#x30A9;&amp;#x30F3;&amp;#x30C8;&amp;#x304C;&amp;#x5C0F;&amp;#x3055;&amp;#x304F;&amp;#x3066;&amp;#x307F;&amp;#x306B;&amp;#x304F;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3046;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x307F;&amp;#x306A;&amp;#x3055;&amp;#x3093;&amp;#x306E;&amp;#x30ED;&amp;#x30FC;&amp;#x30AB;&amp;#x30EB;&amp;#x306B;&amp;#x3042;&amp;#x308B;SML#&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x76F4;&amp;#x63A5;&amp;#x898B;&amp;#x3066;&amp;#x3044;&amp;#x305F;&amp;#x3060;&amp;#x3044;&amp;#x3066;&amp;#x3082;&amp;#x7D50;&amp;#x69CB;&amp;#x3067;&amp;#x3059;&amp;#x3002;...&amp;#x3068;&amp;#x3046;&amp;#x305C;&amp;#x3093;&amp;#x30C0;&amp;#x30A6;&amp;#x30F3;&amp;#x30ED;&amp;#x30FC;&amp;#x30C9;&amp;#x3057;&amp;#x3066;&amp;#x3042;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3088;&amp;#x306D;?\n&amp;#x30FB;SML#&amp;#x306E;&amp;#x5404;&amp;#x5BA3;&amp;#x8A00;&amp;#x304C;&amp;#x30B3;&amp;#x30F3;&amp;#x30B9;&amp;#x30C8;&amp;#x30E9;&amp;#x30AF;&amp;#x30BF;&amp;#x306B;&amp;#x5BFE;&amp;#x5FDC;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x4E0A;&amp;#x304B;&amp;#x3089;&amp;#x9806;&amp;#x306B;&amp;#x95A2;&amp;#x6570;&amp;#x5BA3;&amp;#x8A00;&amp;#x3001;&amp;#x591A;&amp;#x76F8;&amp;#x306E;&amp;#x95A2;&amp;#x6570;&amp;#x5BA3;&amp;#x8A00;&amp;#x3001;&amp;#x5909;&amp;#x6570;&amp;#x5BA3;&amp;#x8A00;&amp;#x306B;&amp;#x306A;&amp;#x3063;&amp;#x3066;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n---\n&amp;#x30FB;&amp;#x30DD;&amp;#x30A4;&amp;#x30F3;&amp;#x30C8;&amp;#x306F;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x3068;&amp;#x4F4D;&amp;#x7F6E;&amp;#x60C5;&amp;#x5831;&amp;#x304C;&amp;#x542B;&amp;#x307E;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x3053;&amp;#x3068;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  34. &amp;#x30FB;&amp;#x5BA3;&amp;#x8A00;&amp;#x306E;&amp;#x578B;&amp;#x306F;&amp;#x3053;&amp;#x3093;&amp;#x306A;&amp;#x611F;&amp;#x3058;&amp;#x306B;&amp;#x306A;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x30D5;&amp;#x30A9;&amp;#x30F3;&amp;#x30C8;&amp;#x304C;&amp;#x5C0F;&amp;#x3055;&amp;#x304F;&amp;#x3066;&amp;#x307F;&amp;#x306B;&amp;#x304F;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3046;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x307F;&amp;#x306A;&amp;#x3055;&amp;#x3093;&amp;#x306E;&amp;#x30ED;&amp;#x30FC;&amp;#x30AB;&amp;#x30EB;&amp;#x306B;&amp;#x3042;&amp;#x308B;SML#&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x76F4;&amp;#x63A5;&amp;#x898B;&amp;#x3066;&amp;#x3044;&amp;#x305F;&amp;#x3060;&amp;#x3044;&amp;#x3066;&amp;#x3082;&amp;#x7D50;&amp;#x69CB;&amp;#x3067;&amp;#x3059;&amp;#x3002;...&amp;#x3068;&amp;#x3046;&amp;#x305C;&amp;#x3093;&amp;#x30C0;&amp;#x30A6;&amp;#x30F3;&amp;#x30ED;&amp;#x30FC;&amp;#x30C9;&amp;#x3057;&amp;#x3066;&amp;#x3042;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3088;&amp;#x306D;?\n&amp;#x30FB;SML#&amp;#x306E;&amp;#x5404;&amp;#x5BA3;&amp;#x8A00;&amp;#x304C;&amp;#x30B3;&amp;#x30F3;&amp;#x30B9;&amp;#x30C8;&amp;#x30E9;&amp;#x30AF;&amp;#x30BF;&amp;#x306B;&amp;#x5BFE;&amp;#x5FDC;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x4E0A;&amp;#x304B;&amp;#x3089;&amp;#x9806;&amp;#x306B;&amp;#x95A2;&amp;#x6570;&amp;#x5BA3;&amp;#x8A00;&amp;#x3001;&amp;#x591A;&amp;#x76F8;&amp;#x306E;&amp;#x95A2;&amp;#x6570;&amp;#x5BA3;&amp;#x8A00;&amp;#x3001;&amp;#x5909;&amp;#x6570;&amp;#x5BA3;&amp;#x8A00;&amp;#x306B;&amp;#x306A;&amp;#x3063;&amp;#x3066;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n---\n&amp;#x30FB;&amp;#x30DD;&amp;#x30A4;&amp;#x30F3;&amp;#x30C8;&amp;#x306F;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x3068;&amp;#x4F4D;&amp;#x7F6E;&amp;#x60C5;&amp;#x5831;&amp;#x304C;&amp;#x542B;&amp;#x307E;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x3053;&amp;#x3068;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  35. &amp;#x30FB;(&amp;#x53D7;&amp;#x3051;&amp;#x3066;&amp;#x305F;&amp;#x3089;)&amp;#x30D5;&amp;#x30A9;&amp;#x30F3;&amp;#x30C8;&amp;#x304C;&amp;#x5C0F;&amp;#x3055;&amp;#x304F;&amp;#x3066;&amp;#x307F;&amp;#x306B;&amp;#x304F;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3046;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x307F;&amp;#x306A;&amp;#x3055;&amp;#x3093;&amp;#x306E;&amp;#x30ED;&amp;#x30FC;&amp;#x30AB;&amp;#x30EB;&amp;#x306B;&amp;#x3042;&amp;#x308B;SML#&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;..\n&amp;#x30FB;&amp;#x4ECA;&amp;#x5EA6;&amp;#x306F;&amp;#x5F0F;&amp;#x306B;&amp;#x5BFE;&amp;#x5FDC;&amp;#x3059;&amp;#x308B;datatype&amp;#x3067;&amp;#x3059;&amp;#x3002;&amp;#x4E0A;&amp;#x304B;&amp;#x3089;&amp;#x9806;&amp;#x306B;sqlserver&amp;#x3078;&amp;#x306E;&amp;#x63A5;&amp;#x7D9A;&amp;#x3001;&amp;#x9069;&amp;#x7528;&amp;#x3001;&amp;#x5909;&amp;#x6570;&amp;#x53C2;&amp;#x7167;&amp;#x306B;&amp;#x306A;&amp;#x3063;&amp;#x3066;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x3053;&amp;#x308C;&amp;#x3082;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x3068;&amp;#x4F4D;&amp;#x7F6E;&amp;#x60C5;&amp;#x5831;&amp;#x304C;&amp;#x57CB;&amp;#x3081;&amp;#x8FBC;&amp;#x307E;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;\n
  36. &amp;#x30FB;(&amp;#x53D7;&amp;#x3051;&amp;#x3066;&amp;#x305F;&amp;#x3089;)&amp;#x30D5;&amp;#x30A9;&amp;#x30F3;&amp;#x30C8;&amp;#x304C;&amp;#x5C0F;&amp;#x3055;&amp;#x304F;&amp;#x3066;&amp;#x307F;&amp;#x306B;&amp;#x304F;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3046;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x307F;&amp;#x306A;&amp;#x3055;&amp;#x3093;&amp;#x306E;&amp;#x30ED;&amp;#x30FC;&amp;#x30AB;&amp;#x30EB;&amp;#x306B;&amp;#x3042;&amp;#x308B;SML#&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;..\n&amp;#x30FB;&amp;#x4ECA;&amp;#x5EA6;&amp;#x306F;&amp;#x5F0F;&amp;#x306B;&amp;#x5BFE;&amp;#x5FDC;&amp;#x3059;&amp;#x308B;datatype&amp;#x3067;&amp;#x3059;&amp;#x3002;&amp;#x4E0A;&amp;#x304B;&amp;#x3089;&amp;#x9806;&amp;#x306B;sqlserver&amp;#x3078;&amp;#x306E;&amp;#x63A5;&amp;#x7D9A;&amp;#x3001;&amp;#x9069;&amp;#x7528;&amp;#x3001;&amp;#x5909;&amp;#x6570;&amp;#x53C2;&amp;#x7167;&amp;#x306B;&amp;#x306A;&amp;#x3063;&amp;#x3066;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x3053;&amp;#x308C;&amp;#x3082;&amp;#x578B;&amp;#x60C5;&amp;#x5831;&amp;#x3068;&amp;#x4F4D;&amp;#x7F6E;&amp;#x60C5;&amp;#x5831;&amp;#x304C;&amp;#x57CB;&amp;#x3081;&amp;#x8FBC;&amp;#x307E;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;\n
  37. &amp;#x30FB;&amp;#x578B;&amp;#x306F;tyToString&amp;#x3067;&amp;#x6587;&amp;#x5B57;&amp;#x5217;&amp;#x306B;&amp;#x3067;&amp;#x304D;&amp;#x308B;\n&amp;#x30FB;&amp;#x4F4D;&amp;#x7F6E;&amp;#x60C5;&amp;#x5831;&amp;#x306F;lineOfPos&amp;#x3067;&amp;#x884C;&amp;#x756A;&amp;#x53F7;&amp;#x3001;colOfPos&amp;#x3067;&amp;#x5217;&amp;#x756A;&amp;#x53F7;&amp;#x304C;&amp;#x3068;&amp;#x308C;&amp;#x308B;\n
  38. &amp;#x30FB;&amp;#x3053;&amp;#x308C;&amp;#x3067;&amp;#x60C5;&amp;#x5831;&amp;#x306F;&amp;#x305D;&amp;#x308D;&amp;#x3063;&amp;#x305F;&amp;#x306E;&amp;#x3067;&amp;#x30C0;&amp;#x30F3;&amp;#x30D7;&amp;#x3059;&amp;#x308B;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x304C;&amp;#x3057;&amp;#x304C;&amp;#x3057;&amp;#x66F8;&amp;#x3044;&amp;#x3066;&amp;#x3044;&amp;#x304D;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x57FA;&amp;#x672C;&amp;#x7684;&amp;#x306B;tpdecl&amp;#x3068;tpexp&amp;#x3092;&amp;#x306A;&amp;#x3081;&amp;#x3066;&amp;#x3044;&amp;#x304F;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x306B;&amp;#x306A;&amp;#x308A;&amp;#x307E;&amp;#x3059;\n
  39. \n
  40. \n
  41. &amp;#x30FB;&amp;#x5E38;&amp;#x306B;&amp;#x30C0;&amp;#x30F3;&amp;#x30D7;&amp;#x3059;&amp;#x308B;&amp;#x306E;&amp;#x3082;&amp;#x5FAE;&amp;#x5999;&amp;#x306A;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x30B9;&amp;#x30A4;&amp;#x30C3;&amp;#x30C1;&amp;#x3067;&amp;#x5207;&amp;#x308A;&amp;#x66FF;&amp;#x3048;&amp;#x308C;&amp;#x308B;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x3059;&amp;#x308B;\n
  42. \n
  43. \n
  44. \n
  45. &amp;#x30FB;camlspotter&amp;#x3063;&amp;#x307D;&amp;#x304F;&amp;#x3057;&amp;#x305F;&amp;#x3044;\n&amp;#x30FB;&amp;#x591A;&amp;#x76F8;&amp;#x30EC;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x306E;&amp;#x578B;&amp;#x304C;&amp;#x3046;&amp;#x307E;&amp;#x304F;&amp;#x6587;&amp;#x5B57;&amp;#x5217;&amp;#x5316;&amp;#x3067;&amp;#x304D;&amp;#x306A;&amp;#x3044;\n
  46. &amp;#x3053;&amp;#x308C;&amp;#x3067;&amp;#x307F;&amp;#x306A;&amp;#x3055;&amp;#x3093;&amp;#x3082;SML#&amp;#x3092;&amp;#x6539;&amp;#x9020;&amp;#x3057;&amp;#x305F;&amp;#x304F;&amp;#x306A;&amp;#x3063;&amp;#x305F;&amp;#x3068;&amp;#x601D;&amp;#x3046;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x3044;&amp;#x304F;&amp;#x3064;&amp;#x304B;&amp;#x958B;&amp;#x767A;tips&amp;#x3092;&amp;#x7D39;&amp;#x4ECB;&amp;#x3057;&amp;#x3066;&amp;#x304A;&amp;#x308F;&amp;#x308D;&amp;#x3046;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  47. \n
  48. &amp;#x6700;&amp;#x8FD1;&amp;#x3001;Mac&amp;#x304C;&amp;#x3068;&amp;#x308C;&amp;#x3066;OS X&amp;#x306E;&amp;#x307F;&amp;#x306B;&amp;#x306A;&amp;#x3063;&amp;#x305F;&amp;#x3068;&amp;#x304B;&amp;#x305D;&amp;#x3046;&amp;#x3044;&amp;#x3046;&amp;#x7D30;&amp;#x304B;&amp;#x3044;&amp;#x3053;&amp;#x3068;&amp;#x306F;&amp;#x8A31;&amp;#x3057;&amp;#x3066;&amp;#x304F;&amp;#x3060;&amp;#x3055;&amp;#x3044;&amp;#x3002;\n64bit&amp;#x3067;&amp;#x30D3;&amp;#x30EB;&amp;#x30C9;&amp;#x3067;&amp;#x304D;&amp;#x306A;&amp;#x3044;&amp;#x308F;&amp;#x3051;&amp;#x3058;&amp;#x3083;&amp;#x306A;&amp;#x3044;&amp;#x3093;&amp;#x3067;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x307E;&amp;#x3042;&amp;#x3001;&amp;#x3044;&amp;#x308D;&amp;#x3044;&amp;#x308D;&amp;#x3068;&amp;#x9762;&amp;#x5012;&amp;#x306A;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x3044;&amp;#x308D;&amp;#x3044;&amp;#x308D;&amp;#x8A66;&amp;#x3059;&amp;#x3068;&amp;#x304D;&amp;#x306F;Ubuntu&amp;#x306E;&amp;#x307B;&amp;#x3046;&amp;#x304C;&amp;#x697D;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  49. \n
Advertisement