予定のみ †

  • 日時 :2006/6/12 (Mon)
  • 場所 :名大 理学部1号館(多元数理科学研究科) 307室
  • 時刻 :18:00〜19:30
  • 参加者:??名
  • 話題 :
    • hoge
    • foo
    • bar


5章 Exercise 続き †

Exercise 6. けいご †

Exercise 7. みずの †

(* fromからtoまでの数列を生成 *)
let rec range from_value to_value = 
   if from_value > to_value then []
   else from_value::(range (from_value + 1) to_value);;

(* 整数版sqrt *)
let sqrt_int x = int_of_float (sqrt (float_of_int x));;

let f r x xs= let y = sqrt_int(r - x*x) in
             if x > y && (x*x + y*y = r) then
                (x,y)::xs
             else
                 xs;;

let squares r = List.fold_right (f r) (range 0 (sqrt_int r)) [];;

6章 Exercise †

Exercise 2(樋口) †

  nat上で
   int_of_nat,
   mul,
   monus を定義せよ 
参考 nat の定義
 type nat = Zero | OneMoreThan of nat ;;
let rec int_of_nat = function
  Zero -> 0 |
  OneMoreThan n -> 1 + int_of_nat n;;
let rec add m n =
 match m with
   Zero -> n |
   OneMoreThan m' -> OneMoreThan (add m' n);;
が定義されているとして

let rec mul m n =
 match m with 
  Zero -> Zero |
  OneMoreThan Zero -> n |
  OneMoreThan m' -> add n (mul m' n);;
 
let rec monus m n = 
 match m with
   Zero -> Zero |
   OneMoreThan m' -> match n with
                      Zero -> OneMoreThan m' |
                      OneMoreThan n' -> monus m' n';;

Exercise 3(末次) †

let rec minus m n = 
  match (m, n) with 
      (m, Zero)  -> Some m
    | (Zero, _) -> None
    | (OneMoreThan k, OneMoreThan l) -> minus k l;;
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS