Do Not Care

Source: reference-book. Raw markdown: /raw/docs/reference-book/4-dataflows/do-not-care.md

DoNotCare operator <<<|>>> is used when just the act of vibration is important so skipping the data itself.

As we know, all vibrations are originally created on top of data. It's impossible to have a vibration without data,

But it is totally fine to skip the data when we just need the act of vibration. It's different than what we experience in CPLs, when they allow you to execute a function or receive an event that doesn't have any data. Well this no longer the case in simorg, as data is driving everything, now the receiver have the right to skip the data if it's not needed.

Let's see this in the following example:

$x

(x, 1, 2) ?
(x |, 20, 30) ?

"Trigger" x

So here we have two <<<AND>>> gates and one of them is using <<<|>>> operator to skip the actual value of <<<x>>>, just receiving its vibration to fulfill the <<<AND>>> condition.

In other words, using <<<|>>> we can sync different pieces of our application while skipping the data that we don't need. Gates are smart enough to skip the slots that are holding a DoNotCare value.

This operator is also contributing to one of the great achievements of Simorg, which is removing the necessity of any form of <<<Nothingness>> e.g. <<<undefined>>>, <<<null>>>, <<<None>>> as they are used in CPLs.

This operator, like any other operator, can also be used in any part of a dataflow pipeline to achieve different purposes. For example, in the following code it is used in the declaration pipeline to make this variable a beacon or signal:

| $trigger

100 trigger
"Start" trigger

In the above vibrations, <<<trigger>>> is acting as a beacon, ignoring the actual values, focusing on the act of vibration itself.

$$$AlertBox type=INFO title=Not Loggable message=A DO_NOT_CARE vibration will not show up in logs!$$$

$$$AlertBox type=HINT title=Do Not Care Behavior message= A DoNotCare vibration is still able to pass if it fulfills the condition of the check, meaning the fact that it is Do Not Care doesn't make any difference when checking its underlying data. It still is holding the same data but the receiver has the ability to choose to skip the data e.g. in the case of gates they don't include DoNotCare values in their vibrations.$$$