コンテンツへスキップ
Varligガイド
Varligホーム

計算行の書き方

このページでは、すべての計算ブロックの土台になる基本を説明します。行がどう読み取られるか、計算の横にメモを残す方法、値に名前を付けて使い回す方法、条件によって結果を変える方法です。Varligで計算を始めたばかりの方はここから読んでください。名前やコメントが思いどおりに動かないときにも、ここに戻ってくると役立ちます。

1行に1つの式

計算は、ノートの中の計算ブロックに書きます。```calc のフェンスを入力するか、⌘Yを押してブロックを挿入します。ブロック内の各行がそれぞれ1つの計算になり、その結果が行の横に表示されます。

calc
¥480 * 5 答え ¥2,400
45 min + 1 hour 20 min 答え 2 hours 5 min
1.5 litres in ml 答え 1,500 mL

空行とコメント行には結果が表示されないので、ブロックに余白を入れたり、説明を書き添えたりしながら進められます。

Varligはまず、行全体を数式として読み取ります。¥4,500 with 10% VAT のような日常的なフレーズも数式の一部です。それで読み取れない場合は、認識できない言葉を脇に置くので、5 りんご + 3 みかん でもちゃんと8になります。ちょっとしたメモには便利ですが、説明の言葉がフレーズや単位名とぶつかることがあります。行の目的を書き添えたいときは、次に説明するコメントかラベルを使いましょう。詳しくはVarligがフレーズを読み取る仕組みを参照してください。

コメント

コメントは、計算機が無視するテキストです。書き方は3通りあります。

形式 無視される部分
ハッシュコメント 家賃 * 12 # 年間 または # 予算 # から行末まで
スラッシュコメント 家賃 * 12 // 年間 // から行末まで
引用符で囲んだメモ "カフェラテ" ¥480 * 5 行内のどこにあっても、二重引用符の中すべて
calc
# 今週の買い物
牛乳 = ¥248
食パン = ¥198 // 天然酵母
= ¥298 "平飼い"
牛乳 + 食パン + # ほかの買い物は別 答え ¥744

# で始まる行は最初から最後までコメントになるので、ブロック内の見出しとして便利です。

ラベル

ラベルは、行頭に書く短い言葉と、それに続くコロンとスペースです。計算の一部にはならずに、結果が何を表すかを示します。

calc
家賃 = ¥68,000
光熱費 = ¥12,000
家賃と光熱費: 家賃 + 光熱費 答え ¥80,000
カフェ代: ¥650 + ¥480 答え ¥1,130

ラベルには文字(アクセント付きの文字も含む)、スペース、アンダースコアを使えますが、数字は使えません。

ラベルは名前を作りません家賃と光熱費: 家賃 + 光熱費 と書いても、家賃と光熱費 という値はできません。結果を使い回したいときは = を使います。また、代入の前にラベルを付けるのも避けてください。住居費: 家賃 = ¥68,000 と書くと金額は表示されますが、家賃 は保存されません。

代入

= で値に名前を付けます。その行にも値が表示されるので、確かめながら進められます。

calc
価格 = ¥8,500 答え ¥8,500
価格 + 20% 答え ¥10,200

すでに定義した名前を更新するには、+=-=*=/= を使います。

calc
旅行積立 = ¥40,000
旅行積立 += ¥15,000 答え ¥55,000
旅行積立 -= ¥8,500 答え ¥46,500
分量 = 4
分量 *= 3 答え 12
小麦粉 = 750 g
小麦粉 /= 3 答え 250 g

右辺がエラーになると、その名前にはエラーが入ります。名前を代入し直すまで、その名前を使うすべての行に同じエラーが表示されます。

calc
ゲスト = 0
一人あたり = ¥12,000 / ゲスト 答え Error: divide by zero
一人あたり + ¥500 答え Error: divide by zero

名前

名前は複数の単語でもかまいません。アクセント付きの文字やラテン文字以外の文字、数字、アンダースコア、絵文字も使えます。

calc
抹茶 ラテ = ¥520
抹茶 ラテ * 5 答え ¥2,600
crème brûlée = ¥780
crème brûlée * 2 答え ¥1,560
🍎 価格 = ¥150
🍎 価格 * 6 答え ¥900
q1 売上 = ¥42,000
q2 売上 = ¥51,000
q1 売上 + q2 売上 答え ¥93,000
寝室_幅 = 3.2 m
寝室_幅 * 2 答え 6.4 m

名前には、toinneeded のようにVarligがほかの場面で使う単語も含められます。floor のような組み込み関数の名前を借りることもできます。値として使う場所では、Varligは自分で付けた値のほうを読み取ります。

calc
time to work = 25 min
time to work * 10 答え 250 min
paint needed = 12.44 L
paint needed to 1 dp 答え 12.4 L
floor = 12
floor * 2 答え 24 m²
floor(3.7) 答え 3

floor(3.7) のように後ろに括弧が続く場合は、関数が本来の働きをします。

名前の末尾を数を表す言葉にすることもできるので、メニューに書かれているとおりに価格を書けます。

calc
table for four = ¥9,600
table for four / 4 答え ¥2,400

名前は大文字と小文字が区別されます。eggsEggs は別々の値です。

時給や税率など、どのノートでも使いたい名前は、ノートごとに書くのではなく、Settingsの共通の定義に追加しましょう。

組み込みの言葉とぶつかる名前

自分で定義した名前は、同じつづりのほかのもの(単位、数を表す言葉、定数など)よりも優先されます。それでも、日常的な名前が量の意味を変えることはありません。複数形の名前や単位の直前に書いた数はその個数として読まれ、tiptax の前のパーセントはチップや税を表すので、hoursnightstip という名前の値があっても、次の行は変わりません。

calc
時給 = ¥1,200 / hour
hours = 7.5
時給 * 7.5 hours 答え ¥9,000
nights = 14
¥7,000/night * 14 nights 答え ¥98,000
tip = $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つの習慣を身につければ、ほとんどの思わぬ結果を避けられます。

  • mshin のような単位記号だけを名前にしたり、pionei のような定数や数を表す言葉を使い回したりしない。
  • 労働時間日当走行距離 のように、内容がわかる名前にする。

書いた順序

各行からは、それより上で定義された名前が見えます。名前は同じノート内の後の計算ブロックにも引き継がれるので、入力値を一度用意すれば、ページの下のほうでも使えます。

calc
単価 = ¥2,000
数量 = 3
費用 = 単価 * 数量 答え ¥6,000
単価 = ¥2,500
単価 * 数量 答え ¥7,500
費用 答え ¥6,000

単価 を定義し直しても、前の 費用 の行は変わりません。費用 は、その時点の単価で計算されたからです。前の計算の結果を変えたいときは、その入力値を定義している行を書き換えてください。

直前の答え

prev はすぐ上の行の答えを表し、ans という名前の値を定義していない限り、ans も同じ意味です。ちょっとした続きの計算に便利です。

calc
¥6,500 * 12 答え ¥78,000
prev / 52 答え ¥1,500
ans + ¥200 答え ¥1,700

複数の行をまとめて合計するには、sum または total とだけ書いた行を追加します。上の行を合計するを参照してください。

スコープのリセット

--- だけの行から、新しいスコープが始まります。それより上で定義した名前、カスタム単位、自作の関数は、その下からは見えなくなります。1つのノートで2つのシナリオを比べるときに、値が混ざり合わないので便利です。

calc
# 案A:駅近の部屋
家賃 = ¥78,000
交通費 = ¥6,000
家賃 + 交通費 答え ¥84,000
---
# 案B:郊外の部屋
家賃 = ¥62,000
交通費 = ¥15,000
家賃 + 交通費 答え ¥77,000

--- より下では、交通費 をもう一度定義する必要があります。忘れると、それを使う行には参照するものがなくなります。

条件式

if … then … else … は、比較の結果によって2つの値のどちらかを選びます。単独でも使えますし、結果を名前に代入することもできます。

calc
カート = ¥3,480
送料 = if カート >= ¥4,000 then ¥0 else ¥550 答え ¥550
カート + 送料 答え ¥4,030

結果が3つ以上あるときは、else if をつなげます。

calc
カート = ¥3,480
if カート < ¥2,000 then ¥880 else if カート < ¥4,000 then ¥550 else ¥0 答え ¥550

計算されるのは選ばれた分岐だけなので、もう一方の分岐にはエラーになる式が入っていてもかまいません。

calc
ゲスト = 0
if ゲスト > 0 then ¥12,000 / ゲスト else ¥0 答え ¥0

後置のifとunless

条件を値の後ろに書くこともできます。value if condition は条件が成り立つときに値を表示し、value unless condition は条件が成り立たないときに値を表示します。どちらの場合も、それ以外のときは何も表示されません。

calc
カート = ¥3,480
¥550 if カート < ¥4,000 答え ¥550
¥550 unless カート >= ¥4,000 答え ¥550

条件式の中での代入

両方の分岐で同じ名前に代入できます。

calc
カート = ¥3,480
if カート >= ¥4,000 then 送料 = ¥0 else 送料 = ¥550 答え ¥550
送料 答え ¥550

then の分岐しかない場合は、条件が成り立つときに代入が行われ、成り立たないときは名前が元の値のままになります。

calc
カート = ¥3,480
ポイント = 0
if カート > ¥3,000 then ポイント = 50 答え 50
ポイント 答え 50

>= などの比較や、&& 演算子と || 演算子については、演算子、比較、条件式で説明しています。

まとめて使う

ノートに書くような、フリーランスの小さな請求書の例です。

calc
# 3月分の請求書
日当 = ¥18,000
作業日数 = 4
交通費 = ¥6,480 // 電車代
報酬 = 日当 * 作業日数 答え ¥72,000
小計 = 報酬 + 交通費 答え ¥78,480
課税事業者 = true
消費税 = if 課税事業者 then 小計 * 10% else ¥0 答え ¥7,848
請求額: 小計 + 消費税 答え ¥86,328

入力値にはすべて名前が付いているので、来月は 作業日数交通費 を変えるだけで、請求書の残りの部分も更新されます。コメントとラベルでブロックが読みやすくなり、条件式のおかげで、消費税を請求するかどうかにかかわらず同じノートを使えます。