src/HOL/List.thy
changeset 34886 873c31d9f10d
parent 34064 eee04bbbae7e
child 34917 51829fe604a7
child 34941 156925dd67af
equal deleted inserted replaced
34878:d7786f56f081 34886:873c31d9f10d
  3888 use "Tools/list_code.ML"
  3888 use "Tools/list_code.ML"
  3889 
  3889 
  3890 code_type list
  3890 code_type list
  3891   (SML "_ list")
  3891   (SML "_ list")
  3892   (OCaml "_ list")
  3892   (OCaml "_ list")
  3893   (Haskell "![_]")
  3893   (Haskell "![(_)]")
       
  3894   (Scala "List[(_)]")
  3894 
  3895 
  3895 code_const Nil
  3896 code_const Nil
  3896   (SML "[]")
  3897   (SML "[]")
  3897   (OCaml "[]")
  3898   (OCaml "[]")
  3898   (Haskell "[]")
  3899   (Haskell "[]")
       
  3900   (Scala "Nil")
  3899 
  3901 
  3900 code_instance list :: eq
  3902 code_instance list :: eq
  3901   (Haskell -)
  3903   (Haskell -)
  3902 
  3904 
  3903 code_const "eq_class.eq \<Colon> 'a\<Colon>eq list \<Rightarrow> 'a list \<Rightarrow> bool"
  3905 code_const "eq_class.eq \<Colon> 'a\<Colon>eq list \<Rightarrow> 'a list \<Rightarrow> bool"
  3936         (fastype_of t) gr;
  3938         (fastype_of t) gr;
  3937       val (ps, gr'') = fold_map
  3939       val (ps, gr'') = fold_map
  3938         (Codegen.invoke_codegen thy defs dep thyname false) ts gr'
  3940         (Codegen.invoke_codegen thy defs dep thyname false) ts gr'
  3939     in SOME (Pretty.list "[" "]" ps, gr'') end handle TERM _ => NONE;
  3941     in SOME (Pretty.list "[" "]" ps, gr'') end handle TERM _ => NONE;
  3940 in
  3942 in
  3941   fold (List_Code.add_literal_list) ["SML", "OCaml", "Haskell"]
  3943   fold (List_Code.add_literal_list) ["SML", "OCaml", "Haskell", "Scala"]
  3942   #> Codegen.add_codegen "list_codegen" list_codegen
  3944   #> Codegen.add_codegen "list_codegen" list_codegen
  3943 end
  3945 end
  3944 *}
  3946 *}
  3945 
  3947 
  3946 
  3948