計算行の書き方
このページでは、すべての計算ブロックの土台になる基本を説明します。行がどう読み取られるか、計算の横にメモを残す方法、値に名前を付けて使い回す方法、条件によって結果を変える方法です。Varligで計算を始めたばかりの方はここから読んでください。名前やコメントが思いどおりに動かないときにも、ここに戻ってくると役立ちます。
1行に1つの式
計算は、ノートの中の計算ブロックに書きます。```calc のフェンスを入力するか、⌘Yを押してブロックを挿入します。ブロック内の各行がそれぞれ1つの計算になり、その結果が行の横に表示されます。
¥480 * 5 答え ¥2,40045 min + 1 hour 20 min 答え 2 hours 5 min1.5 litres in ml 答え 1,500 mL空行とコメント行には結果が表示されないので、ブロックに余白を入れたり、説明を書き添えたりしながら進められます。
Varligはまず、行全体を数式として読み取ります。¥4,500 with 10% VAT のような日常的なフレーズも数式の一部です。それで読み取れない場合は、認識できない言葉を脇に置くので、5 りんご + 3 みかん でもちゃんと8になります。ちょっとしたメモには便利ですが、説明の言葉がフレーズや単位名とぶつかることがあります。行の目的を書き添えたいときは、次に説明するコメントかラベルを使いましょう。詳しくはVarligがフレーズを読み取る仕組みを参照してください。
コメント
コメントは、計算機が無視するテキストです。書き方は3通りあります。
| 形式 | 例 | 無視される部分 |
|---|---|---|
| ハッシュコメント | 家賃 * 12 # 年間 または # 予算 |
# から行末まで |
| スラッシュコメント | 家賃 * 12 // 年間 |
// から行末まで |
| 引用符で囲んだメモ | "カフェラテ" ¥480 * 5 |
行内のどこにあっても、二重引用符の中すべて |
# 今週の買い物牛乳 = ¥248食パン = ¥198 // 天然酵母卵 = ¥298 "平飼い"牛乳 + 食パン + 卵 # ほかの買い物は別 答え ¥744# で始まる行は最初から最後までコメントになるので、ブロック内の見出しとして便利です。
ラベル
ラベルは、行頭に書く短い言葉と、それに続くコロンとスペースです。計算の一部にはならずに、結果が何を表すかを示します。
家賃 = ¥68,000光熱費 = ¥12,000家賃と光熱費: 家賃 + 光熱費 答え ¥80,000カフェ代: ¥650 + ¥480 答え ¥1,130ラベルには文字(アクセント付きの文字も含む)、スペース、アンダースコアを使えますが、数字は使えません。
ラベルは名前を作りません。家賃と光熱費: 家賃 + 光熱費 と書いても、家賃と光熱費 という値はできません。結果を使い回したいときは = を使います。また、代入の前にラベルを付けるのも避けてください。住居費: 家賃 = ¥68,000 と書くと金額は表示されますが、家賃 は保存されません。
代入
= で値に名前を付けます。その行にも値が表示されるので、確かめながら進められます。
価格 = ¥8,500 答え ¥8,500価格 + 20% 答え ¥10,200すでに定義した名前を更新するには、+=、-=、*=、/= を使います。
旅行積立 = ¥40,000旅行積立 += ¥15,000 答え ¥55,000旅行積立 -= ¥8,500 答え ¥46,500分量 = 4分量 *= 3 答え 12小麦粉 = 750 g小麦粉 /= 3 答え 250 g右辺がエラーになると、その名前にはエラーが入ります。名前を代入し直すまで、その名前を使うすべての行に同じエラーが表示されます。
ゲスト = 0一人あたり = ¥12,000 / ゲスト 答え Error: divide by zero一人あたり + ¥500 答え Error: divide by zero名前
名前は複数の単語でもかまいません。アクセント付きの文字やラテン文字以外の文字、数字、アンダースコア、絵文字も使えます。
抹茶 ラテ = ¥520抹茶 ラテ * 5 答え ¥2,600crème brûlée = ¥780crème brûlée * 2 答え ¥1,560🍎 価格 = ¥150🍎 価格 * 6 答え ¥900q1 売上 = ¥42,000q2 売上 = ¥51,000q1 売上 + q2 売上 答え ¥93,000寝室_幅 = 3.2 m寝室_幅 * 2 答え 6.4 m名前には、to、in、needed のようにVarligがほかの場面で使う単語も含められます。floor のような組み込み関数の名前を借りることもできます。値として使う場所では、Varligは自分で付けた値のほうを読み取ります。
time to work = 25 mintime to work * 10 答え 250 minpaint needed = 12.44 Lpaint needed to 1 dp 答え 12.4 Lfloor = 12 m²floor * 2 答え 24 m²floor(3.7) 答え 3floor(3.7) のように後ろに括弧が続く場合は、関数が本来の働きをします。
名前の末尾を数を表す言葉にすることもできるので、メニューに書かれているとおりに価格を書けます。
table for four = ¥9,600table for four / 4 答え ¥2,400名前は大文字と小文字が区別されます。eggs と Eggs は別々の値です。
時給や税率など、どのノートでも使いたい名前は、ノートごとに書くのではなく、Settingsの共通の定義に追加しましょう。
組み込みの言葉とぶつかる名前
自分で定義した名前は、同じつづりのほかのもの(単位、数を表す言葉、定数など)よりも優先されます。それでも、日常的な名前が量の意味を変えることはありません。複数形の名前や単位の直前に書いた数はその個数として読まれ、tip や tax の前のパーセントはチップや税を表すので、hours、nights、tip という名前の値があっても、次の行は変わりません。
時給 = ¥1,200 / hourhours = 7.5時給 * 7.5 hours 答え ¥9,000nights = 14¥7,000/night * 14 nights 答え ¥98,000tip = $12.69$84.60 + 18% tip 答え $99.83その単語にポインタを合わせると、Varligがどちらの意味で読んだかがわかります。時給 * 7.5 hours では「Counts hours here, not the variable hours = 7.5.」と表示されます。行のそれ以外の場所では、split ¥9,000 among people のように、名前は自分で付けた値を表します。
ただし、定義によって行の意味が変わる場合もいくつかあります。
- 1文字の名前は常に自分で付けた値を表すので、
m = 3の後では、2 mは2メートルではなく6になります。 - 単数形の名前の前に数を書くと掛け算になるので、
width = 3の後では、2 widthは6になります。ヒントには、意味をはっきりさせるために2 * widthと書くよう提案が表示されます。 - 数を表す言葉や定数も置き換えられます。
one = 7の後では、one times twoは14です。
次の2つの習慣を身につければ、ほとんどの思わぬ結果を避けられます。
m、s、h、inのような単位記号だけを名前にしたり、pi、one、iのような定数や数を表す言葉を使い回したりしない。労働時間、日当、走行距離のように、内容がわかる名前にする。
書いた順序
各行からは、それより上で定義された名前が見えます。名前は同じノート内の後の計算ブロックにも引き継がれるので、入力値を一度用意すれば、ページの下のほうでも使えます。
単価 = ¥2,000数量 = 3費用 = 単価 * 数量 答え ¥6,000単価 = ¥2,500単価 * 数量 答え ¥7,500費用 答え ¥6,000単価 を定義し直しても、前の 費用 の行は変わりません。費用 は、その時点の単価で計算されたからです。前の計算の結果を変えたいときは、その入力値を定義している行を書き換えてください。
直前の答え
prev はすぐ上の行の答えを表し、ans という名前の値を定義していない限り、ans も同じ意味です。ちょっとした続きの計算に便利です。
¥6,500 * 12 答え ¥78,000prev / 52 答え ¥1,500ans + ¥200 答え ¥1,700複数の行をまとめて合計するには、sum または total とだけ書いた行を追加します。上の行を合計するを参照してください。
スコープのリセット
--- だけの行から、新しいスコープが始まります。それより上で定義した名前、カスタム単位、自作の関数は、その下からは見えなくなります。1つのノートで2つのシナリオを比べるときに、値が混ざり合わないので便利です。
# 案A:駅近の部屋家賃 = ¥78,000交通費 = ¥6,000家賃 + 交通費 答え ¥84,000---# 案B:郊外の部屋家賃 = ¥62,000交通費 = ¥15,000家賃 + 交通費 答え ¥77,000--- より下では、交通費 をもう一度定義する必要があります。忘れると、それを使う行には参照するものがなくなります。
条件式
if … then … else … は、比較の結果によって2つの値のどちらかを選びます。単独でも使えますし、結果を名前に代入することもできます。
カート = ¥3,480送料 = if カート >= ¥4,000 then ¥0 else ¥550 答え ¥550カート + 送料 答え ¥4,030結果が3つ以上あるときは、else if をつなげます。
カート = ¥3,480if カート < ¥2,000 then ¥880 else if カート < ¥4,000 then ¥550 else ¥0 答え ¥550計算されるのは選ばれた分岐だけなので、もう一方の分岐にはエラーになる式が入っていてもかまいません。
ゲスト = 0if ゲスト > 0 then ¥12,000 / ゲスト else ¥0 答え ¥0後置のifとunless
条件を値の後ろに書くこともできます。value if condition は条件が成り立つときに値を表示し、value unless condition は条件が成り立たないときに値を表示します。どちらの場合も、それ以外のときは何も表示されません。
カート = ¥3,480¥550 if カート < ¥4,000 答え ¥550¥550 unless カート >= ¥4,000 答え ¥550条件式の中での代入
両方の分岐で同じ名前に代入できます。
カート = ¥3,480if カート >= ¥4,000 then 送料 = ¥0 else 送料 = ¥550 答え ¥550送料 答え ¥550then の分岐しかない場合は、条件が成り立つときに代入が行われ、成り立たないときは名前が元の値のままになります。
カート = ¥3,480ポイント = 0if カート > ¥3,000 then ポイント = 50 答え 50ポイント 答え 50>= などの比較や、&& 演算子と || 演算子については、演算子、比較、条件式で説明しています。
まとめて使う
ノートに書くような、フリーランスの小さな請求書の例です。
# 3月分の請求書日当 = ¥18,000作業日数 = 4交通費 = ¥6,480 // 電車代報酬 = 日当 * 作業日数 答え ¥72,000小計 = 報酬 + 交通費 答え ¥78,480課税事業者 = true消費税 = if 課税事業者 then 小計 * 10% else ¥0 答え ¥7,848請求額: 小計 + 消費税 答え ¥86,328入力値にはすべて名前が付いているので、来月は 作業日数 と 交通費 を変えるだけで、請求書の残りの部分も更新されます。コメントとラベルでブロックが読みやすくなり、条件式のおかげで、消費税を請求するかどうかにかかわらず同じノートを使えます。