# Soulver Xシリーズ

## Soulver X Series とは？

2024年、私たちは以下のミッションを掲げた数年間にわたる R\&D プロジェクトに着手しました。

* Soulver のためのクールな新アイデアの探求
* 新しい形式と新しいワークフローの追求
* これまでにない領域への大胆な進出 🖖

私たちは毎年、メジャーな新しい X シリーズバージョンをリリースする予定です。

### Soulver X Series のスポンサーシップ

長年のユーザー（または Soulver の熱狂的なファン）で、この取り組みに興奮している方は、[GitHub で私たちのミッションをスポンサーする](https://soulver.app/sponsor)ことをご検討ください。

また、スポンサーとして、これまで見たことのない機能がさらに盛り込まれた、メモ帳計算機分野の最新の X シリーズプロトタイプ（X3、X4 など）にアクセスできます。

私たちの（非常に）小さなチームは皆様のサポートに感謝しており、それによってこのような高度なメモ帳計算機の R\&D により多くのリソースを投入することが可能になります。

## Soulver X2 (2025)

### サブシート

* サブシートは、単一のトークン内に存在する別のシートです。
  * タブバーの + ボタンからサブシートを作成します。
  * 紫色のトークンをダブルクリックすると、サブシートエディタが開きます。
* サブシートは、親シートの変数（変数がサブシートの行より上に宣言されている場合）を参照できます。

### 範囲を持つスライダー トークン

* スライダー トークンを使用すると、スクラブ可能なスライダーの範囲を指定できます。
  * タブバーの + ボタンからスライダーを作成します。
  * 緑色のトークンをダブルクリックすると、スライダーのポップアップが開きます。

### 区切り線

* ダッシュ (-) を3回入力すると、区切り線が挿入されます。
* 区切り線を使用して、シートの異なる部分間の視覚的な分離をより多く作成できます。

## Soulver X1 (2024)

X1 には、以下の Soulver のトップの機能リクエストが実装されています。

* [カスタム関数サポート](https://soulver.app/feedback) （*自然言語関数を含む*）
* [シートをまたいだ変数共有](https://soulver.app/feedback) （*新しい「ヘッダー」シート経由*）
* [Web API への接続](https://soulver.app/feedback) （*貼り付けと数回のクリックだけで*）

### タブ

<figure><img src="/files/MTEXdKP1ufWnifZaFbNk" alt=""><figcaption><p>Soulver X1 の複数タブ</p></figcaption></figure>

Soulver X1 のドキュメントは単一のタブから始まりますが、タブバーの右側にある + ボタンをクリックすることで、さらにタブを追加できます。

**タブの名前の変更**

タブのタイトルをダブルクリックすると、別の名前を付けることができます。または、タブをコントロールクリックして「名前の変更」を選択します。

**タブの削除**

タブにカーソルを合わせると、x ボタンをクリックして削除できます。または、タブをコントロールクリックして「削除」を選択します。

{% hint style="warning" %}
タブは現在開発中の機能です。

タブの並べ替えは（まだ）できず、単一のドキュメントにタブを入れすぎても正しく動作しません。
{% endhint %}

### ヘッダーシート

ヘッダーは、ドキュメント内のすべてのタブで使用できる変数、単位、関数、および Web 値を定義するための専用シートです。

<figure><img src="/files/pjMQ5NwOfADXZaX62y9E" alt="" width="375"><figcaption></figcaption></figure>

### **クロスタブ変数**

ドキュメントの変数は、ヘッダーでローカル変数を宣言するのと同じ方法で宣言します。

例：

```
my variable = 123
```

`my variable` はすべてのシートで利用可能になります。

{% hint style="info" %}
タブは変数を参照することはできますが、その定義を変更してドキュメント内の他のシートに適用することはできません。
{% endhint %}

### **同等単位**

同等単位は、既存の単位に基づいて定義されます。

ヘッダーで、以下のように（例えば）新しい同等単位を定義します。

```
1 watermelon = 10 lb
```

<figure><img src="/files/eLofukmI2HYGa5m0UZIB" alt=""><figcaption><p>Soulver X1 で新しい質量単位を宣言</p></figcaption></figure>

これで、`watermelon` をタブ全体で質量単位として使用できるようになりました。

<figure><img src="/files/Hxt1y77aCxEpYsvgsxuq" alt=""><figcaption><p>Soulver X1 でカスタム同等単位を使用</p></figcaption></figure>

{% hint style="info" %}
Soulver X1 は、新しい単位を自動的に複数形化します（英語の場合）。

そのため、この例では、定義が「watermelon」であっても、「watermelons」の両方が有効な単位名として認識されます。
{% endhint %}

### **汎用単位**

同等単位は、既存の単位に基づいて定義されるのではなく、完全に新しい単位タイプです。

ヘッダーで、以下のように（例えば）新しい汎用単位を定義します。

```
operation = new unit
```

<figure><img src="/files/wlwI3Acky8LAEZfVjwTG" alt=""><figcaption><p>Soulver X1 で汎用単位タイプを宣言</p></figcaption></figure>

これで、`operation` 単位をタブ全体（レート内を含む）で使用できるようになりました。

<figure><img src="/files/roHorKMQ0ylLK1EUJM0Q" alt=""><figcaption><p>Soulver X1 で汎用単位を使用</p></figcaption></figure>

### **カスタム関数**

**はじめに**

関数とは、入力値を受け取り、出力値を返す便利なフレーズです。Soulver X1 では、以下を含む（ほぼ）あらゆる構文の関数を使用できます。

Cスタイル: `doSomething(123)`

Swiftスタイル: `doSomething(with: 123)`

自然言語: `do something with 123`

**新しいカスタム関数の作成方法（ヘッダー内）**

* `Define New` > `Function` をクリックします。

**関数名の選択:**

<figure><img src="/files/C2rPgxbWryGlt4LUWBS6" alt=""><figcaption><p>Soulver X1 で新しい関数を宣言</p></figcaption></figure>

* 関数は、実際にその関数をどのように使用するかという例を使って定義します。
* 任意のパラメータを選択します（ただし、お金、時間、プレーンな小数など、実装で期待するパラメータの「型」と一致している必要があります）。

**関数の実装:**

<figure><img src="/files/z0uoo6OZZda1Yaho8Ta8" alt=""><figcaption><p>特定金額にかかる売上税を計算する関数を記述</p></figcaption></figure>

* 専用の Soulver シートに関数を実装します。すべてのパラメータは黄色いトークンとして挿入されます。
* パラメータトークンにカーソルを合わせると、宣言内でどのパラメータを参照しているかを確認できます。
* 実装シートの最後の行が、その関数の最終的な値として返されます。

**関数の使用**

<figure><img src="/files/C5YYdbCHaxRJbsU4qchG" alt=""><figcaption></figcaption></figure>

他の入力値と組み合わせて、すべてのシートで使用します。

### **Web 値（JSON API への接続）**

#### **新しい Web 値の作成方法（ヘッダー内）**

* `Define New` > `Web Value` をクリックします。

#### **JSON データフィードの特定のデータポイントへの接続**

<figure><img src="/files/H9DMF1F3xrnaJuPAtUiS" alt=""><figcaption><p>Soulver X1 でリモートデータフィードに接続</p></figcaption></figure>

* JSON データフィードの URL を貼り付けた後、接続したいデータポイントをクリックするだけです。

#### **Web 値の使用**

* Web 値には変数名が割り当てられます（デフォルトでは、JSON フィードの説明と一致します）。
* 変数名を別のものに変更しても構いません。

#### **Web 値の更新**

* Web 値は、セットアップ時に指定した頻度でバックグラウンドで自動的に更新されます。

#### **Web 値の編集**

* ヘッダーの黄色い Web 値トークンをダブルクリックして、異なるデータポイントを指定するか、更新頻度を変更します。

## Soulver X Series ファイルタイプ

{% hint style="warning" %}
Soulver X シリーズのアプリは、Soulver とは異なるドキュメントタイプ（.slvrx）を使用します。

これは、私たちが構築し、実験している新機能をサポートするためです。

Soulver X (.slvrx) ファイルは、Mac、iOS & iPad 用の Soulver 3 では編集できません。
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.soulver.app/ja/shi-yan-de-ji-neng/x.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
