adt   443

« earlier    

The Algebra of Algebraic Data Types, Part 3 - Chris Taylor
I gave a talk on this subject at London Haskell in November 2012. A video of the talk is on YouTube and slides are on GitHub. This is Part 3 in a …
haskell  adt  functional  programming 
6 weeks ago by rryan
The Algebra of Algebraic Data Types, Part 2 - Chris Taylor
I gave a talk on this subject at London Haskell in November 2012. A video of the talk is on YouTube and slides are on GitHub. This is Part 2 in a …
haskell  adt  functional  programming 
6 weeks ago by rryan
The Algebra of Algebraic Data Types, Part 1 - Chris Taylor
I gave a talk on this subject at London Haskell in November 2012. A video of the talk is on YouTube and slides are on GitHub. In this series of posts …
haskell  adt  functional  programming 
6 weeks ago by rryan
What the Heck are Algebraic Data Types? ( for Programmers )
Some of you may be asking why you should learn Algebraic Data Types and how will they change your world? I am not going to answer that, but suffice it to say that Algebraic Data Types are the underpinning of the type systems to the ML derived languages, Haskell and OCaml included, and their construction and properties allow for the power (and inference) that accompanies these type systems. They are cropping up in other languages, like Scala, F#, and Clojure. Well, here are my 2 cents.

I wrote this blog post because I had trouble learning what an Algebraic Data Type was, and could not find an introduction that did not either 1) leap immediately to copy and pasted phrases, 2) mislead, like make the claim that "algebraic data types are the same thing as discriminated unions" or 3) delve into graduate level formalism. This blog post represents the results of what I have teased from numerous sources.
Algebraic-Data-Types  ADT 
june 2017 by rcyphers
Abstract Data Types, Algebraic Data Types and Algebraic [Data] Structures
Discussing the differences between abstract data types, algebraic data types, and algebraic [data] structures.
Algebraic-Data-Types  ADT 
june 2017 by rcyphers
The surest sign you’re winning is when Goliath takes a swing at you • Both Sides
Mark Suster:
<p>This <a href="">Goliath-imposed fight by ADT</a> is particularly annoying for me because Ring is literally my family’s single favorite tech innovation of the past several years. It is a security doorbell (and now floodlight!) where for just $3 / month you can watch all video footage of people who come to the outside of your house including delivery people, solicitors or people in the neighborhood who perhaps shouldn’t be there.

For my family Ring has become a way that we joke and communicate with each other when I’m on the road. The boys or my wife will step in front of the camera on the way to school and if I’m in NY or SF or London my phone rings and I see them waving on their way.

Just how threatened is ADT? Ring is now arguably the fastest growing consumer product in the country and is now in a staggering 1 million homes in America and growing at an unbelievable clip. It is a product that you can purchase an entry-level camera for under $200 and pay just $3/month in video fees in a security industry that was previously only accessible to wealthy families who could afford expensive protection.

Ring is to ADT what the classic Innovator’s Dilemma says disrupts the industry behemoth by offering a product that is significantly cheaper and initially lower in feature set but eventually becomes so pervasive and where functionality grows to a point where the entire market dumps the giant company charging high prices in favor of a younger, more nimble provider whose innovation cannot be matched.
And the giant gets disrupted precisely because its cost structure to serve its customers and its cash cow, high-priced offering makes it nearly impossible for it to try compete.</p>

ADT, if you didn't know, is a company that has grown rich on comparatively simple alarm systems, often with subscriptions. Ring threatens to undermine that.
ring  adt  lawsuit 
may 2017 by charlesarthur
ADTs in Typed Racket with macros
Algebraic data types, or ADTs, are a staple of the ML family of functional programming languages. I won’t go into detail here—I want to focus on the implementation—but they’re a very descriptive way of modeling data that encourages designing functions in terms of pattern-matching, something that Racket is already good at.

Racket also already has a facility for creating custom data structures in the form of structs, which are extremely flexible, but also a little verbose. Racket structs are more powerful than we need, but that means we can implement our ADTs in terms of Racket’s struct system.
scheme  racket  algebraic-data-types  ADT  macro 
april 2017 by rcyphers
The Derivative of a Regular Type is its Type of One-Hole Contexts
Polymorphic regular types are tree-like datatypes generated
by polynomial type expressions over a set of free
variables and closed under least fixed point. The ‘equality
types’ of Core MLcan be expressed in this form. Given
such a type expression ✁
with ✂ free, this paper shows a
way to represent the one-hole contexts for elements of ✂
within elements of ✁
, together with an operation which
will plug an element of ✂ into the hole of such a context.
One-hole contexts are given as inhabitants of a regular
type ✄✆☎ ✁
, computed generically from the syntactic structure
of ✁
by a mechanism better known as partial differentiation.
The relevant notion of containment is shown to
be appropriately characterized in terms of derivatives and
plugging in. The technology is then exploited to give the
one-hole contexts for sub-elements of recursive types in a
manner similar to Huet’s ‘zippers’[Hue97].
adt  programming  paper 
january 2017 by darren_n

« earlier    

related tags

22parsons  @font-face  abap  abaptothefuture  abstractdatatype  academic-publishing  access  ademco  adt-to-add  adts  advantage  aeson  alarm  algebra  algebraic-data-types  algebraic  algebraic_datatypes  algorithm  android  androidstudio  beatles  c#  c++  c  camera  cds  circe  clojure  color  comcast  compatibility  concord4  constant  cpp  critique  curso  dannyhillis  data  datastructure  datastructures  ddl  design-thinking  design  development  discriminatedunion  diversity  domain  eclipse  eclipse,ide  elm  ethics  example  extension  feature  floss  font  fonts  fsharp  fsharpforfunandprofit  functional-programming  functional  gadt  google  graph  haskell  healthcare  home-securty  homealarm  howto  iconography  ide  inspiration  intro  java  javascript  journal  jre8  json  justworks  knowledge  language  lawsuit  layout  library  liferay  literal  macro  macros  management  manuals  matching  math  migration  mit  music  neon  npm  odata  open  opensource  owned  paper  pattern  patternmatching  plt  plugin  polymorphism  process  programming  pulse  python  racket  rc8025b  reactjs  reel  repl  reprogram  resource  resources  ring  sap  scala  scheme  science  selfmanagement  slick  state-machine  sum  system  tech  testing  tips  tools  toread  type  typed_racket  types  typography  union  usability  user-testing  userdefined  usertesting  ux  value  version  versions  voice  xfinity 

Copy this bookmark: