質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
関数型プログラミング

関数型プログラミングとは、関数を用いて演算子を構築し、算出し、コンピュータプログラムを構成する枠組みです。

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

OCaml

OCaml(オーキャムル)は、フランスのINRIAが開発した関数型言語MLの一種で、 最新の言語理論の成果が取り入れられているプログラミング言語です。

Q&A

1回答

1194閲覧

ocamlによる計算式の内部表現の最適化

grape_ll

総合スコア83

関数型プログラミング

関数型プログラミングとは、関数を用いて演算子を構築し、算出し、コンピュータプログラムを構成する枠組みです。

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

OCaml

OCaml(オーキャムル)は、フランスのINRIAが開発した関数型言語MLの一種で、 最新の言語理論の成果が取り入れられているプログラミング言語です。

0グッド

0クリップ

投稿2021/06/06 02:28

編集2021/06/09 01:43

###実現したい内容
Add (x, Mul (Num (-1), y))

Add(Var "x", Var "-y")もしくは
Sub(Var "x", Var "y")
という表現に治したい.

できれば,
Add (Add (y, Num 1), Add (x, Num 2))

Add(Add(Var "x", Var "y"), Num 3)
のように直したい.

###現状のコード
"-y"のようなものを作るために
m1 = Num (-1) then Var "-"^m2のように行おうとしたが,"-"がstringであるのに対して,m2がexpであるので型のエラーが出てしまった.
(なので下のコードでは除いてある.)

ocaml

1type exp = 2 | Num of int 3 | Var of string 4 | Add of exp * exp 5 | Mul of exp * exp 6 | Sub of exp * exp;; 7 8let make_sum a1 a2 = 9 Add (a1,a2);; 10 11let make_product m1 m2 = 12 Mul (m1,m2);; 13 14let rec deriv var = function 15 | Num n -> Num 0 16 | Var x -> if Var x = var then Num 1 else Num 0 17 | Add (x, y) -> make_sum (deriv var x) (deriv var y) 18 | Mul (x, y) -> make_sum (make_product x (deriv var y)) 19 (make_product (deriv var x) y);; 20 (*微分*) 21 22let x = Var "x" and y = Var "y";;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

早稲田大学の課題の質問をするのはやめたほうがいいと思います.

投稿2021/06/24 14:24

sasakikoutarou

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問