# Serie Soulver X

## Cos'è Soulver X Series?

Nel 2024, abbiamo intrapreso un progetto di ricerca e sviluppo pluriennale la missione di:

* Esplorare idee nuove e interessanti per Soulver
* Cercare nuove forme e nuovi flussi di lavoro
* Avventurarci con audacia dove nessun calcolatore da quaderno ha osato andare 🖖

Intendiamo rilasciare una nuova versione importante della serie X ogni anno.

### Sponsorship Soulver X Series

Se sei un utente di lunga data (o un mega-fan di Soulver) e sei entusiasta di questo lavoro, potresti considerare di [sponsorizzare la nostra missione su GitHub](https://soulver.app/sponsor).

Inoltre, come sponsor, avrai accesso al più recente prototipo della serie X (X3, X4, ecc.) con funzionalità mai viste prima nel dominio dei calcolatori da quaderno.

Il nostro team (molto) piccolo apprezzerebbe il supporto, e saremo in grado di dedicare più risorse a questo tipo di ricerca e sviluppo avanzato per calcolatori da quaderno.

## Soulver X2 (2025)

### Subsheets

* Un subsheet è un foglio separato che vive all'interno di un singolo token.
  * Crea un subsheet dal pulsante + nella barra delle schede.
  * Fai doppio clic sul token viola per aprire l'editor del subsheet.
* I subsheet possono fare riferimento a variabili del foglio principale (a condizione che le variabili siano dichiarate sopra la riga del subsheet).

### Token Slider con Intervalli

* Un token slider ti consente di specificare l'intervallo per uno slider scorrevole
  * Crea uno slider dal pulsante + nella barra delle schede.
  * Fai doppio clic sul token verde per aprire il popup dello slider.

### Linee divisorie

* Digita il trattino (-) tre volte per inserire una linea divisoria.
* Usa le linee divisorie per creare una maggiore separazione visiva tra le diverse parti del tuo foglio.

## Soulver X1 (2024)

X1 include le implementazioni delle richieste di funzionalità principali di Soulver, tra cui:

* [Supporto funzioni personalizzate](https://soulver.app/feedback) (*inclusi* *funzioni in linguaggio naturale*)
* [Condivisione di variabili tra fogli](https://soulver.app/feedback) (*tramite il nuovo foglio "header"*)
* [Connessione a Web API](https://soulver.app/feedback) (*con un semplice incolla e un paio di clic*)

### Schede

<figure><img src="/files/sBvjntLxGaygplrp3osg" alt=""><figcaption><p>Più schede in Soulver X1</p></figcaption></figure>

I documenti in Soulver X1 iniziano con una singola scheda, e puoi aggiungerne altre cliccando sul pulsante + a destra della barra delle schede.

**Rinomina le schede**

Fai doppio clic sul titolo di una scheda per assegnarle un nome alternativo. In alternativa, fai clic con il tasto destro sulla scheda e scegli "Rinomina".

**Eliminare le schede**

Quando passi il mouse su una scheda, fai clic sul pulsante x per eliminarla. In alternativa, fai clic con il tasto destro sulla scheda e scegli "Elimina"

{% hint style="warning" %}
Le schede sono una funzionalità in fase di sviluppo.

Non è ancora possibile riorganizzare le schede, e aggiungere troppe schede in un singolo documento non funziona correttamente.
{% endhint %}

### Il foglio header

L'header è un foglio dedicato alla definizione di variabili, unità, funzioni e valori web che possono essere utilizzati in tutte le schede del tuo documento.

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

### **Variabili trasversali alle schede**

Dichiara le variabili per il tuo documento nell'header nello stesso modo in cui dichiareresti variabili locali.

Ad esempio:

```
my variable = 123
```

`my variable` sarà disponibile in tutte le tue schede

{% hint style="info" %}
Le tue schede possono fare riferimento a variabili, ma non possono modificarne la definizione in modo che ciò si applichi ad altri fogli del documento.
{% endhint %}

### **Unità equivalenti**

Un'unità equivalente è definita in termini di un'unità esistente.

Definisci una nuova unità equivalente nell'header usando (ad esempio):

```
1 watermelon = 10 lb
```

<figure><img src="/files/cXBTh5zD3ZabPLiZ30ud" alt=""><figcaption><p>Dichiarare una nuova unità di massa in Soulver X1</p></figcaption></figure>

Il `watermelon` può ora essere utilizzato come unità di massa in tutte le tue schede.

<figure><img src="/files/Ad9BO4JaeT1PJe4h9EEP" alt=""><figcaption><p>Utilizzare un'unità equivalente personalizzata in Soulver X1</p></figcaption></figure>

{% hint style="info" %}
Soulver X1 pluralizza automaticamente la tua nuova unità (in inglese).

Quindi in questo esempio, sia "watermelons" sarà riconosciuto come un nome unità valido, anche se la definizione era "watermelon".
{% endhint %}

### **Unità generiche**

Un'unità equivalente è un tipo di unità completamente nuovo, non definito in termini di un'unità esistente.

Definisci una nuova unità generica nell'header usando (ad esempio):

```
operation = new unit
```

<figure><img src="/files/f8ILn3MxDwQJ2RIxUH60" alt=""><figcaption><p>Dichiarare un tipo di unità generica in Soulver X1</p></figcaption></figure>

L'unità `operation` può ora essere utilizzata in tutte le tue schede (inclusi i tassi):

<figure><img src="/files/yrApclgpkeameSQ8JXPJ" alt=""><figcaption><p>Utilizzare un'unità generica in Soulver X1</p></figcaption></figure>

### **Funzioni personalizzate**

**Introduzione**

Una funzione è un'espressione utile che prende un input e restituisce un output. In Soulver X1, puoi utilizzare (quasi) qualsiasi sintassi per una funzione, tra cui:

Stile C: `doSomething(123)`

Stile Swift: `doSomething(with: 123)`

Linguaggio naturale: `do something with 123`

**Per creare una nuova funzione personalizzata (nell'header)**

* Clicca su `Define New` > `Function`

**Scegliere un nome funzione:**

<figure><img src="/files/570gVTQbtoQ8RE3r6s8Q" alt=""><figcaption><p>Dichiarare una nuova funzione in Soulver X1</p></figcaption></figure>

* Definisci la tua funzione usando un esempio di come potresti usare la funzione in pratica.
* Scegli qualsiasi parametro (purché corrispondano al "tipo" di parametro che ti aspetti per la tua implementazione, come denaro, tempo, numeri decimali semplici, ecc.).

**Implementare la funzione:**

<figure><img src="/files/eTab68wVnUAGms6t4yde" alt=""><figcaption><p>Scrivere una funzione per calcolare l'imposta di vendita su una certa somma</p></figcaption></figure>

* Implementa la funzione in un foglio Soulver dedicato. Qualsiasi parametro verrà iniettato come token giallo.
* Passa il mouse su un token parametro per vedere a quale parametro si riferisce nella dichiarazione.
* L'ultima riga del foglio di implementazione verrà restituita come valore finale della funzione.

**Usare la funzione**

<figure><img src="/files/39DEjcqG1f4Zyud7u55X" alt=""><figcaption></figcaption></figure>

Usa la tua funzione con altri valori di input in tutte le tue schede

### **Valori web (connessione a API JSON)**

#### **Per creare un nuovo valore web (nell'header)**

* Clicca su `Define New` > `Web Value`

#### **Per connettersi a un particolare punto dati in un feed dati JSON**

<figure><img src="/files/PclfhKaYk0KNkh7Yk0Bq" alt=""><figcaption><p>Connettersi a un feed dati remoto in Soulver X1</p></figcaption></figure>

* Incolla un URL a un feed dati JSON e poi semplicemente fai clic sul punto dati a cui desideri connetterti

#### **Utilizzare un valore web**

* Il tuo valore web verrà assegnato a un nome variabile (di default, corrispondente alla sua descrizione nel feed JSON)
* Sei libero di cambiare il nome della variabile con qualcos'altro

#### **Aggiornare un valore web**

* Il tuo valore web verrà aggiornato automaticamente in background con la frequenza che hai specificato durante l'impostazione

#### **Modificare un valore web**

* Fai doppio clic sul token web giallo nell'header per specificare un punto dati diverso o cambiare la frequenza di aggiornamento

## Tipo di file Soulver X Series

{% hint style="warning" %}
Le app della serie Soulver X utilizzano un tipo di documento diverso (.slvrx) rispetto a Soulver.

Questo serve a supportare le nuove funzionalità che stiamo costruendo e sperimentando.

I file Soulver X (.slvrx) non possono essere modificati da Soulver 3 per Mac, iOS e iPad.
{% 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/it/sperimentale/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.
