The Cooper Storage Idiom
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Discriminants and the Monoid of Quadratic Rings
DISCRIMINANTS AND THE MONOID OF QUADRATIC RINGS JOHN VOIGHT Abstract. We consider the natural monoid structure on the set of quadratic rings over an arbitrary base scheme and characterize this monoid in terms of discriminants. Quadratic field extensions K of Q are characterized by their discriminants. Indeed, there is a bijection 8Separable quadratic9 < = ∼ × ×2 algebras over Q −! Q =Q : up to isomorphism ; p 2 ×2 Q[ d] = Q[x]=(x − d) 7! dQ wherep a separable quadratic algebra over Q is either a quadratic field extension or the algebra Q[ 1] ' Q × Q of discriminant 1. In particular, the set of isomorphism classes of separable quadratic extensions of Q can be given the structure of an elementary abelian 2-group, with identity element the class of Q × Q: we have simply p p p Q[ d1] ∗ Q[ d2] = Q[ d1d2] p × ×2 up to isomorphism. If d1; d2; dp1d2 2pQ n Q then Q( d1d2) sits as the third quadratic subfield of the compositum Q( d1; d2): p p Q( d1; d2) p p p Q( d1) Q( d1d2) Q( d2) Q p Indeed, ifpσ1 isp the nontrivial elementp of Gal(Q( d1)=Q), then therep is a unique extension of σ1 to Q( d1; d2) leaving Q( d2) fixed, similarly with σ2, and Q( d1d2) is the fixed field of the composition σ1σ2 = σ2σ1. This characterization of quadratic extensions works over any base field F with char F 6= 2 and is summarized concisely in the Kummer theory isomorphism H1(Gal(F =F ); {±1g) = Hom(Gal(F =F ); {±1g) ' F ×=F ×2: On the other hand, over a field F with char F = 2, all separable quadratic extensions have trivial discriminant and instead they are classified by the (additive) Artin-Schreier group F=}(F ) where }(F ) = fr + r2 : r 2 F g Date: January 17, 2021. -
What I Wish I Knew When Learning Haskell
What I Wish I Knew When Learning Haskell Stephen Diehl 2 Version This is the fifth major draft of this document since 2009. All versions of this text are freely available onmywebsite: 1. HTML Version http://dev.stephendiehl.com/hask/index.html 2. PDF Version http://dev.stephendiehl.com/hask/tutorial.pdf 3. EPUB Version http://dev.stephendiehl.com/hask/tutorial.epub 4. Kindle Version http://dev.stephendiehl.com/hask/tutorial.mobi Pull requests are always accepted for fixes and additional content. The only way this document will stayupto date and accurate through the kindness of readers like you and community patches and pull requests on Github. https://github.com/sdiehl/wiwinwlh Publish Date: March 3, 2020 Git Commit: 77482103ff953a8f189a050c4271919846a56612 Author This text is authored by Stephen Diehl. 1. Web: www.stephendiehl.com 2. Twitter: https://twitter.com/smdiehl 3. Github: https://github.com/sdiehl Special thanks to Erik Aker for copyediting assistance. Copyright © 20092020 Stephen Diehl This code included in the text is dedicated to the public domain. You can copy, modify, distribute and perform thecode, even for commercial purposes, all without asking permission. You may distribute this text in its full form freely, but may not reauthor or sublicense this work. Any reproductions of major portions of the text must include attribution. The software is provided ”as is”, without warranty of any kind, express or implied, including But not limitedtothe warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authorsor copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, Arising from, out of or in connection with the software or the use or other dealings in the software. -
Applicative Programming with Effects
Under consideration for publication in J. Functional Programming 1 FUNCTIONALPEARL Applicative programming with effects CONOR MCBRIDE University of Nottingham ROSS PATERSON City University, London Abstract In this paper, we introduce Applicative functors—an abstract characterisation of an ap- plicative style of effectful programming, weaker than Monads and hence more widespread. Indeed, it is the ubiquity of this programming pattern that drew us to the abstraction. We retrace our steps in this paper, introducing the applicative pattern by diverse exam- ples, then abstracting it to define the Applicative type class and introducing a bracket notation which interprets the normal application syntax in the idiom of an Applicative functor. Further, we develop the properties of applicative functors and the generic opera- tions they support. We close by identifying the categorical structure of applicative functors and examining their relationship both with Monads and with Arrows. 1 Introduction This is the story of a pattern that popped up time and again in our daily work, programming in Haskell (Peyton Jones, 2003), until the temptation to abstract it became irresistable. Let us illustrate with some examples. Sequencing commands One often wants to execute a sequence of commands and collect the sequence of their responses, and indeed there is such a function in the Haskell Prelude (here specialised to IO): sequence :: [IO a ] → IO [a ] sequence [ ] = return [] sequence (c : cs) = do x ← c xs ← sequence cs return (x : xs) In the (c : cs) case, we collect the values of some effectful computations, which we then use as the arguments to a pure function (:). We could avoid the need for names to wire these values through to their point of usage if we had a kind of ‘effectful application’. -
Learn You a Haskell for Great Good! © 2011 by Miran Lipovača 3 SYNTAX in FUNCTIONS 35 Pattern Matching
C ONTENTSINDETAIL INTRODUCTION xv So, What’s Haskell? .............................................................. xv What You Need to Dive In ........................................................ xvii Acknowledgments ................................................................ xviii 1 STARTING OUT 1 Calling Functions ................................................................. 3 Baby’s First Functions ............................................................. 5 An Intro to Lists ................................................................... 7 Concatenation ........................................................... 8 Accessing List Elements ................................................... 9 Lists Inside Lists .......................................................... 9 Comparing Lists ......................................................... 9 More List Operations ..................................................... 10 Texas Ranges .................................................................... 13 I’m a List Comprehension.......................................................... 15 Tuples ........................................................................... 18 Using Tuples............................................................. 19 Using Pairs .............................................................. 20 Finding the Right Triangle ................................................. 21 2 BELIEVE THE TYPE 23 Explicit Type Declaration .......................................................... 24 -
On the Hall Algebra of Semigroup Representations Over F1
ON THE HALL ALGEBRA OF SEMIGROUP REPRESENTATIONS OVER F1 MATT SZCZESNY Abstract. Let A be a finitely generated semigroup with 0. An A–module over F1 (also called an A–set), is a pointed set (M, ∗) together with an action of A. We define and study the Hall algebra HA of the category CA of finite A–modules. HA is shown to be the universal enveloping algebra of a Lie algebra nA, called the Hall Lie algebra of CA. In the case of the hti - the free monoid on one generator hti, the Hall algebra (or more precisely the Hall algebra of the subcategory of nilpotent hti-modules) is isomorphic to Kreimer’s Hopf algebra of rooted forests. This perspective allows us to define two new commutative operations on rooted forests. We also consider the examples when A is a quotient of hti by a congruence, and the monoid G ∪{0} for a finite group G. 1. introduction The aim of this paper is to define and study the Hall algebra of the category of set- theoretic representations of a semigroup. Classically, Hall algebras have been studied in the context abelian categories linear over finite fields Fq. Given such a category A, finitary in the sense that Hom(M, N)andExt1(M, N) are finite-dimensional ∀ M, N ∈ A (and therefore finite sets), we may construct from A an associative algebra HA defined 1 over Z , called the Ringel-Hall algebra of A. Asa Z–module, HA is freely generated by the isomorphism classes of objects in A, and its structure constants are expressed in terms of the number of extensions between objects. -
There Is No Fork: an Abstraction for Efficient, Concurrent, and Concise Data Access
There is no Fork: an Abstraction for Efficient, Concurrent, and Concise Data Access Simon Marlow Louis Brandy Jonathan Coens Jon Purdy Facebook Facebook Facebook Facebook [email protected] [email protected] [email protected] [email protected] Abstract concise business logic, uncluttered by performance-related details. We describe a new programming idiom for concurrency, based on In particular the programmer should not need to be concerned Applicative Functors, where concurrency is implicit in the Applica- with accessing external data efficiently. However, one particular tive <*> operator. The result is that concurrent programs can be problem often arises that creates a tension between conciseness and written in a natural applicative style, and they retain a high degree efficiency in this setting: accessing multiple remote data sources of clarity and modularity while executing with maximal concur- efficiently requires concurrency, and that normally requires the rency. This idiom is particularly useful for programming against programmer to intervene and program the concurrency explicitly. external data sources, where the application code is written without When the business logic is only concerned with reading data the use of explicit concurrency constructs, while the implementa- from external sources and not writing, the programmer doesn’t tion is able to batch together multiple requests for data from the care about the order in which data accesses happen, since there same source, and fetch data from multiple sources concurrently. are no side-effects that could make the result different when the Our abstraction uses a cache to ensure that multiple requests for order changes. So in this case the programmer would be entirely the same data return the same result, which frees the programmer happy with not having to specify either ordering or concurrency, from having to arrange to fetch data only once, which in turn leads and letting the system perform data access in the most efficient way to greater modularity. -
An Introduction to Applicative Functors
An Introduction to Applicative Functors Bocheng Zhou What Is an Applicative Functor? ● An Applicative functor is a Monoid in the category of endofunctors, what's the problem? ● WAT?! Functions in Haskell ● Functions in Haskell are first-order citizens ● Functions in Haskell are curried by default ○ f :: a -> b -> c is the curried form of g :: (a, b) -> c ○ f = curry g, g = uncurry f ● One type declaration, multiple interpretations ○ f :: a->b->c ○ f :: a->(b->c) ○ f :: (a->b)->c ○ Use parentheses when necessary: ■ >>= :: Monad m => m a -> (a -> m b) -> m b Functors ● A functor is a type of mapping between categories, which is applied in category theory. ● What the heck is category theory? Category Theory 101 ● A category is, in essence, a simple collection. It has three components: ○ A collection of objects ○ A collection of morphisms ○ A notion of composition of these morphisms ● Objects: X, Y, Z ● Morphisms: f :: X->Y, g :: Y->Z ● Composition: g . f :: X->Z Category Theory 101 ● Category laws: Functors Revisited ● Recall that a functor is a type of mapping between categories. ● Given categories C and D, a functor F :: C -> D ○ Maps any object A in C to F(A) in D ○ Maps morphisms f :: A -> B in C to F(f) :: F(A) -> F(B) in D Functors in Haskell class Functor f where fmap :: (a -> b) -> f a -> f b ● Recall that a functor maps morphisms f :: A -> B in C to F(f) :: F(A) -> F(B) in D ● morphisms ~ functions ● C ~ category of primitive data types like Integer, Char, etc. -
Structure of Some Idempotent Semirings
Journal of Computer and Mathematical Sciences, Vol.7(5), 294-301, May 2016 ISSN 0976-5727 (Print) (An International Research Journal), www.compmath-journal.org ISSN 2319-8133 (Online) Structure of Some Idempotent Semirings N. Sulochana1 and T. Vasanthi2 1Assistant Professor, Department of Mathematics, K.S.R.M College of Engineering, Kadapa-516 003, A. P., INDIA. Email: [email protected] 2Professor of Mathematics, Department of Mathematics, Yogi Vemana University, Kadapa-516 003, A. P., INDIA. (Received on: May 30, 2016) ABSTRACT In this paper we study the notion of some special elements such as additive idempotent, idempotent, multiplicatively sub-idempotent, regular, absorbing and characterize these subidempotent and almost idempotent semiring. It is prove that, if S is a subidempotent semiring and (S, ) be a band, then S is a mono semiring and S is k - regular. 2000 Mathematics Subject Classification: 20M10, 16Y60. Keywords: Integral Multiple Property (IMP); Band; Mono Semirings; Rectangular Band; Multiplicatively Subidempotent; k-regular. 1. INTRODUCTION The concept of semirings was first introduced by Vandiver in 1934. However the developments of the theory in semirings have been taking place since 1950. The theory of rings and the theory of semigroups have considerable impact on the developments of the theory of semirings and ordered semirings. It is well known that if the multiplicative structure of an ordered semiring is a rectangular band then its additive structure is a band. P.H. Karvellas2 has proved that if the multiplicative structure of a semiring is a regular semigroup and if the additive structure is an inverse semigroup, then the additive structure is commutative. -
It's All About Morphisms
It’s All About Morphisms Uberto Barbini @ramtop https://medium.com/@ramtop About me OOP programmer Agile TDD Functional PRogramming Finance Kotlin Industry Blog: https://medium.com/@ ramtop Twitter: @ramtop #morphisms#VoxxedVienna @ramtop Map of this presentation Monoid Category Monad Functor Natural Transformation Yoneda Applicative Morphisms all the way down... #morphisms#VoxxedVienna @ramtop I don’t care about Monads, why should I? Neither do I what I care about is y el is to define system behaviour ec Pr #morphisms#VoxxedVienna @ramtop This presentation will be a success if most of you will not fall asleep #morphisms#VoxxedVienna @ramtop This presentation will be a success if You will consider that Functional Programming is about transformations and preserving properties. Not (only) lambdas and flatmap #morphisms#VoxxedVienna @ramtop What is this Category thingy? Invented in 1940s “with the goal of understanding the processes that preserve mathematical structure.” “Category Theory is about relation between things” “General abstract nonsense” #morphisms#VoxxedVienna @ramtop Once upon a time there was a Category of Stuffed Toys and a Category of Tigers... #morphisms#VoxxedVienna @ramtop A Category is defined in 5 steps: 1) A collection of Objects #morphisms#VoxxedVienna @ramtop A Category is defined in 5 steps: 2) A collection of Arrows #morphisms#VoxxedVienna @ramtop A Category is defined in 5 steps: 3) Each Arrow works on 2 Objects #morphisms#VoxxedVienna @ramtop A Category is defined in 5 steps: 4) Arrows can be combined #morphisms#VoxxedVienna -
Some Aspects of Semirings
Appendix A Some Aspects of Semirings Semirings considered as a common generalization of associative rings and dis- tributive lattices provide important tools in different branches of computer science. Hence structural results on semirings are interesting and are a basic concept. Semi- rings appear in different mathematical areas, such as ideals of a ring, as positive cones of partially ordered rings and fields, vector bundles, in the context of topolog- ical considerations and in the foundation of arithmetic etc. In this appendix some algebraic concepts are introduced in order to generalize the corresponding concepts of semirings N of non-negative integers and their algebraic theory is discussed. A.1 Introductory Concepts H.S. Vandiver gave the first formal definition of a semiring and developed the the- ory of a special class of semirings in 1934. A semiring S is defined as an algebra (S, +, ·) such that (S, +) and (S, ·) are semigroups connected by a(b+c) = ab+ac and (b+c)a = ba+ca for all a,b,c ∈ S.ThesetN of all non-negative integers with usual addition and multiplication of integers is an example of a semiring, called the semiring of non-negative integers. A semiring S may have an additive zero ◦ defined by ◦+a = a +◦=a for all a ∈ S or a multiplicative zero 0 defined by 0a = a0 = 0 for all a ∈ S. S may contain both ◦ and 0 but they may not coincide. Consider the semiring (N, +, ·), where N is the set of all non-negative integers; a + b ={lcm of a and b, when a = 0,b= 0}; = 0, otherwise; and a · b = usual product of a and b. -
Commutative Monoid Duality
Commutative monoid duality Jan Niklas Latz* Jan M. Swart∗ August 3, 2021 Abstract We introduce two partially overlapping classes of pathwise dualities between interacting particle systems that are based on commutative monoids (semigroups with a neutral ele- ment) and semirings, respectively. For interacting particle systems whose local state space has two elements, this approach yields a unified treatment of the well-known additive and cancellative dualities. For local state spaces with three or more elements, we discover several new dualities. MSC 2020. Primary: 82C22; Secondary: 16Y60, 20M32. Keywords: interacting particle system, duality, monoid, semiring. Acknowledgements: Work supported by grant 20-08468S of the Czech Science Foundation (GACR).ˇ Contents 1 Introduction 2 2 Dualities based on commutative monoids 4 2.1 Commutative monoids . .4 2.2 Duality of commutative monoids . .5 2.3 Product spaces . .5 3 Dualities based on semirings 6 4 Some special cases 8 4.1 Semirings generated by the unit element . .8 4.2 Lattice duality . .8 5 Examples and discussion 8 5.1 Monoids with up to four elements . .8 5.2 Semirings with up to four elements . 10 5.3 Dualities between commutative monoids . 10 5.4 Discussion . 12 6 Proofs 13 6.1 General theory . 13 6.2 Product spaces . 14 6.3 Semirings . 15 6.4 Lattices . 17 A Appendix 17 A.1 Addition tables of commutative monoids of order four . 17 A.2 Duality functions for commutative monoids of order four . 18 A.3 Multiplications in semirings of cardinality four . 19 *The Czech Academy of Sciences, Institute of Information Theory and Automation, Pod vod´arenskou vˇeˇz´ı4, 18200 Praha 8, Czech Republic. -
ON QUASI N-ABSORBING ELEMENTS of MULTIPLICATIVE LATTICES 3
ON QUASI n-ABSORBING ELEMENTS OF MULTIPLICATIVE LATTICES ECE YETKIN CELIKEL Abstract. In this study, we introduce the concept of quasi n-absorbing el- ements of multiplicative lattices. A proper element q is said to be a quasi n-absorbing element of L if whenever anb ≤ q implies that either an ≤ q or an−1b ≤ q. We investigate properties of this new type of elements and obtain some relations among prime, 2-absorbing, n-absorbing elements in multiplica- tive lattices. 1. Introduction In this paper we define and study quasi n-absorbing elements in multiplicative lattices. A multiplicative lattice is a complete lattice L with the least element 0 and compact greatest element 1, on which there is defined a commutative, associa- tive, completely join distributive product for which 1 is a multiplicative identity. Notice that L(R) the set of all ideals of a commutative ring R is a special example for multiplicative lattices which is principally generated, compactly generated and modular. However, there are several examples of non-modular multiplicative lat- tices (see [1]) Weakly prime ideals [3] were generalized to multiplicative lattices by introducing weakly prime elements in [7]. While 2-absorbing, weakly 2-absorbing ideals in commutative rings, and n-absorbing ideals were introduced in [5], [6], and [4], 2-absorbing and weakly 2-absorbing elements in multiplicative lattices were studied in [10]. We begin by recalling some background material which will be needed. An element a of L is said to be compact if whenever a _ aα implies a _ aα ≤ ≤ α∈I α∈I0 for some finite subset I0 of I.