How (if at all) does the exponential interpretation of (->) (a -> b as ba) generalize to categories other than Hask/Set? For example it would appear that the interpretation for the category of non-deterministic functions is roughly Kliesli [] a b as 2a * b (a -> b -> Bool).
Generalization of Exponential Type
439 Views Asked by David Harrison At
1
There are 1 best solutions below
Related Questions in HASKELL
- Cabal sandbox is using a global dependency. Could not resolve
- Haskell lens: let binding of Traversal'
- How can I parse fixed-length, non-delimited integers with attoparsec?
- Pipeline-like operation using TChan
- compile-time vs. run-time cost of Hamlet templates
- Date-time package in haskell - error in the current one, can't find an analog
- How does one debug infinite recursion in Haskell?
- Force GHC using local files
- List with random numbers in Haskell
- Changes in other elements based on listbox selections in threepenny-gui
- Multithreading and gtk2hs
- Operator section for applicative with <$> and <*>
- Unable to create a custom header to use it in "withManager"
- How do I reuse an intermediate value in chain of Haskell Either binds?
- Haskell, Tree problems
Related Questions in CATEGORY-THEORY
- The fixed point functors of Free and Cofree
- Does a natural monoidal structure on copoints of a Functor induce a Comonad?
- Sum of indexed functors
- Are type-level functors just functors in the 2-category of Hask?
- Defining Categories and Category Laws in Haskell
- Is there a term for a monad that is also a comonad?
- Open Type Level Proofs in Haskell/Idris
- Initial algebra for rose trees
- Real-world applications of zygohistomorphic prepromorphisms
- Equivalence relations are to Groups, as partial order relations are to...?
- What type corresponds to a xor b in type theory?
- If Either can be either Left or Right but not both, then why does it correspond to OR instead of XOR in Curry-Howard correspondence?
- Is an identity functor in Category of sets a function application?
- Matrix as Applicative functor, which is not Monad
- List based on right Kan extension
Related Questions in CATEGORY-ABSTRACTIONS
- Defining Categories and Category Laws in Haskell
- What good is Control.Category?
- How to construct an Applicative instance with constraints (similarly to constructing Monad instances using ContT)
- Examples of Cartesian (Profunctor)?
- Generalization of Exponential Type
- Where Haskell category composition is used regardless of instance?
- Is (\f -> fmap f id) always equivalent to arr?
- What's wrong with defining composition this way?
- Is there a reason that `Functor` is not a superclass of `Category`?
- What is the difference between '.' and '<<<' when performing function composition?
- Relation between the Semigroupoid and Semigroup classes
- Would a type class "between" Category and Arrow make sense?
- Making mapped with category's Functor
- typeorm inner join and where problem - BaseEntity model
- Generalising ($) like Control.Category generalises (.)
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The notion of exponential can be defined in general terms, beyond Hask/Set. A category with exponentials and products is called a cartesian closed category. This is a key notion in theoretical computer science since each c.c. category is essentially a model of the typed lambda calculus.
Roughly, in a cartesian closed category for any pair of objects
a,bthere exist:(a * b), and(b^ab)with morphisms
eval : (b^a)*a -> b(in Haskell:\(f,x) -> f x, AKA apply)f : (a*b)->c, there existsLf : a -> (c^b)(in Haskell:curry f)satisfying the equation "they enjoy in the lambda calculus", i.e., if
f : (a*b)->c, then:f = (Lf * id_a) ; evalIn Haskell, the last equation is:
f = \(x :: (a,b), y :: a) -> apply (curry f x, id y) where apply (g,z) = g zor, using arrows,
f = (curry f *** id) >>> apply where apply (g,z) = g z