2007-11-10

http://anond.hatelabo.jp/20071110221822

Objective Camlを使ってみたよ!

問3はわからなかった!

let rec map f ls =
  match ls with
  hd::tl -> f hd (map f tl)
  | [] -> 0
in
let plus x y=
  x + y
in


let rec iter f n ls=
  match ls with
  hd::tl -> (iter f (f n hd) tl)
  | _ -> n
in

let biggest ls=
  match ls with
  hd::tl -> iter (fun x y -> if x > y then x else y) hd tl
  | _ -> assert false
in

print_int(map plus [1; 4; 5]);
print_int(biggest [1; 4; 32; 523; 453; 23;])
記事への反応 -
  • Schemeによる解答

    あくまで自分でこう答えるという話。 (問1) (define fold-left (lambda (func obj lst) (cond ((null? lst) obj) (else (fold-left func (func obj (car lst)) (cdr lst))))))(define ...

    • 関数プログラミングにおけるFizzBuzz問題

      いくつか考えてみた (問1)高階関数と再帰関数を必ず使って数値を要素とするリストの要素の総和を求める関数を書け。ただし高階関数を使うという要件と再帰関数を使うという要件は同...

      • http://anond.hatelabo.jp/20071110221822

        Objective Camlを使ってみたよ! 問3はわからなかった! let rec map f ls = match ls with hd::tl -> f hd (map f tl) | [] -> 0inlet plus x y= x + yinlet rec iter f n ls= match ls with hd::tl -> (iter f (f n hd) tl) | _ -> n...

記事への反応(ブックマークコメント)

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん