LoginSignup
0
0

《プログラミングの基礎》をReScriptで読む 第二章-第四章

Last updated at Posted at 2024-04-22

《プログラミングの基礎》はとても良い本です。
サンプルプログラムをReScriptで書いて、プログラミングの基礎とReScriptを学びます。
ReScriptはmacOS Sonoma(バージョン 14.4.1)で動かしています。

第二章

ocaml
"新" ^ "横浜" ^ "駅"
Rescript
"新" ++ "横浜" ++ "駅"

stringの連結子は++です。

第三章

特になし

第四章

ocaml
let f x = 3 * x
ReScript
let f = (x) => {3 * x}

関数はlet 関数名 = (引数) => {本体}と書きます。


Ex04_1.res
let jikyu = 850 
 
let baito_kyuyo = (year, month) => {
  month * (jikyu + year * 100) 
}

Console.log(baito_kyuyo(1, 10))
Ex04_2.res
let jikoshokai = (namae) => { 
  "私の名前は" ++ namae ++ "です。よろしくお願いします。" 
}

Console.log(jikoshokai("戯画蛙"))
Ex04_3.res
let hyojun_taiju = (shincho) => {
  shincho *. shincho *. 22.0 
}

Console.log(hyojun_taiju(1.75))
Ex04_4.res
let bmi = (shincho, taiju) => { 
  taiju /. (shincho *. shincho)
}

Console.log(bmi(1.75, 75.))
Ex04_6.res
// 目的:鶴の数 tsuru を受け取ったら足の本数を返す
// tsuru_no_ashi : int -> int
let tsuru_no_ashi = (tsuru) => tsuru * 2 
 
// テスト
Console.log(tsuru_no_ashi(0) == 0)
Console.log(tsuru_no_ashi(1) == 2)
Console.log(tsuru_no_ashi(7) == 14)
Ex04_7.res
// 目的:鶴の数と亀の数を受け取ったら足の本数を返す
// tsurukame_no_ashi : int -> int -> int
let tsurukame_no_ashi = (tsuru, kame) => tsuru * 2 + kame * 4 
 
// テスト
Console.log(tsurukame_no_ashi(0, 0) == 0)
Console.log(tsurukame_no_ashi(1, 1) == 6)
Console.log(tsurukame_no_ashi(2, 3) == 16) 
Ex04_8.res
// 目的:鶴と亀の数の合計と足の数の合計を受け取ったら鶴の数を返す
// tsurukame : int -> int -> int
let tsurukame = (gokei, ashi) => (gokei * 4 - ashi) / 2 
 
// テスト
Console.log(tsurukame(0, 0) == 0) 
Console.log(tsurukame(5, 12) == 4)
Console.log(tsurukame(12, 34) == 7)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0