<p>This is correct. Plutus Core uses eager evaluation. You can see this in the first section of the Plutus Core Specification. I'm not sure <em>why</em> however I'd expect it is to allow you to accurately estimate fees and avoid infinite data structures.</p>
<p><a href="https://hydra.iohk.io/job/Cardano/plutus/linux.docs.plutus-core-spec/latest/download-by-type/doc-pdf/plutus-core-specification" rel="nofollow noreferrer">This PDF</a> contains the formal language specifications of the Plutus Core language.</p>

CC BY-SA 4.0
2021-04-30T08:51:40.847Z
2021-05-01T07:58:26.367Z
2021-05-01T07:58:26.367Z
Eddy Schauman-Haigh
<p>While declaring records for use in Plutus strict operator is used like this:</p>
<pre><code>data Auction = Auction
   { aSeller   :: !PubKeyHash
   , aDeadline :: !Slot
   , aMinBid   :: !Integer
   , aCurrency :: !CurrencySymbol
   , aToken    :: !TokenName
   } deriving (Show, Generic, ToJSON, FromJSON, ToSchema)
</code></pre>
<p>Does this mean that Plutus Core does not use lazy evaluation?</p>

<smart-contract><plutus>
Why Strict Evaluation Operator "!" used in record definition implemented in Plutus Core?
# Why Strict Evaluation Operator "!" used in record definition implemented in Plutus Core?

(Asked by: username_0 on 2021-04-30)

While declaring records for use in Plutus strict operator is used like this:
data Auction = Auction
   { aSeller   :: !PubKeyHash
   , aDeadline :: !Slot
   , aMinBid   :: !Integer
   , aCurrency :: !CurrencySymbol
   , aToken    :: !TokenName
   } deriving (Show, Generic, ToJSON, FromJSON, ToSchema)

Does this mean that Plutus Core does not use lazy evaluation?

**Tags:** smart-contract, plutus

---

## 1 answers

### Answer by username_1 on 2021-04-30. Score: 6

This is correct. Plutus Core uses eager evaluation. You can see this in the first section of the Plutus Core Specification. I'm not sure *why* however I'd expect it is to allow you to accurately estimate fees and avoid infinite data structures.

[This PDF](https://hydra.iohk.io/job/Cardano/plutus/linux.docs.plutus-core-spec/latest/download-by-type/doc-pdf/plutus-core-specification) contains the formal language specifications of the Plutus Core language.


---

