By using .
you are already using denotational semantic
In computer science, denotational semantics (initially known as mathematical semantics or Scott–Strachey semantics) is an approach of formalizing the meanings of programming languages by constructing mathematical objects
(source)
in fact the .
aims to emulate the function composition operator in math ( ∘
, used as g ∘ f
to indicate a function that acts as g(f(x))
).
with that being said there are still your question to answer to:
how do I use/write this into my code?
in Haskell is as simple as:
circle :: ( b -> c ) -> ( a -> b ) -> ( a -> c )
circle = (.)
how is the conversion between the two handled?
being Haskell lazy-evaluated, when you get to the point of calling
circle g f
it will be substituted to
(.) g f
which is equivalent to
g . f
does this come with time or security concerns?
no security concerns, this is all handled by haskell.
does this still compile to plutus-core correctly?
as long it is {-# INLINEABLE circle #-}
it doesn't comes to my mind a reason why it wouldn't