Refolding Planar Polygons
Hayley N. Iben · James F. O’Brien · Erik D. Demaine
Thanks Hayley, James, and Erik. This really helps.
Musings
Refolding Planar Polygons
Hayley N. Iben · James F. O’Brien · Erik D. Demaine
Thanks Hayley, James, and Erik. This really helps.
Looking through other functional programming sites for wisdom to use in F#, found this by Seth Gordon.
http://www.haskell.org/pipermail/haskell-cafe/2006-November/019538.html
[Haskell-cafe] the case of the 100-fold program speedup
“ … In other words, I sped up the code by two orders of magnitude. …”
Seth quoted Perlis, and I concur.
Microsoft San Francisco Office
835 Market Street, Suite 700
San Francisco, CA 94103
Wednesday August 19th at 6:30 PM to 9:00 PM*
(Check-in begins at 6:00 PM)
_________________________________________
Event Description:
I'll share my motivations and experiences learning to have FUN with F#.
A quick review of some F# history, a bit more on the state of the F# art, and a few forward looking F# observations.
Start a conversation about building our dreams by harnessing F# to many/multi-cores.
Let's see what we can do with 100,000 times more personal compute power than we had last millennium and a new more expressive language.
Speaker's Bio:
Art Scott's interest in computer graphics started in the 70's; while living at The Berkeley Film House. It led him to a career, as an entrepreneur and intra-entrepreneur, in the Computer Graphic Industry; from Silicon Valley to SoMa.
From circuits to MadAve Art's seen how the power of graphics work; inside and out.
Art is using VS2010, .NET 4, WPF, F#, and multi-/many-cores --
having FUN investigating Tilings and Patterns, and, Parquet Deformations, working on Symmorphmetry, his art project.
Art is a member of the International Society of the Arts, Mathematics, and Architecture (ISAMA); and working on furthering the semasiographic revolution.
licon Valley.
Bay.NET is a California Nonprofit Corporation operated entirely by volunteers and we are proud of our service to the .NET community of the greater San Francisco Bay Area. We regularly provide world-class speakers at no cost to our members. We offer a full-day "Education Day" once every quarter for a nominal registration fee.
Wednesday, April 01, 2009 10:57:59 AM (Pacific Daylight Time, UTC-07:00)
There is no light without heat...
Some will fight, some will flee.
Consumer visual network for me!
Intel, AMD, IBM I want to watch 4 (at least) games streaming;
To my pixel dust lipstick screen gleaming!
While clicking pizza offer at halftime,
Vid-screening to friends and family distant,
Virtual world interacting and gaming too!
Don’t make me wait while fools debate,
Invest; in parallel and concurrently!
I posted this doggerel at:
I posted this comment at http://blog.matthewdoig.com/?p=152
Thanks Matthew et al.
RE:
" ... I have to admit that just finding a good example was somewhat of a chore, which suggests either functors aren’t used a whole lot by OCaml programmers or nobody understands them. ... " Matthew Doig
" ... but compositionality is the core feature of functional programming. Ocaml style functors and Haskell style monads just aren’t possible in F#. Sure, we can simulate composibility, but the above example shows that it’s still too difficult. ..." Anonymous
" ... I’m just saying: it’s natural to be frustrated when translating a concept in one language to another that doesn’t have direct support for it. ... " Kurt
Is a good example of functors in OCAML, "Tilings as a programming exercise" by Guy Cousineau, (Theoretical Computer Science 281 (2002) 207 – 217) [also with Mauny "The Functional Approach to Programming"]?
Trying to translate it to F# led to "The Haskell School of Expression, Learning Functional Programming Through Multimedia", by Paul Hudak.
Here's the conclusion:
" Now we can summarize the construction of tilings in one functor that takes all the necessary ingredients as parameters:
module Construct_tiling
(Group: CANONICAL_GROUP)
(Geom: GEOMETRY)
(GenMap: MAPPING with type source = Group.element
and type dest = Geom.transformation)
(GenColorMap: MAPPING with type source = Group.element
and type dest = Permutation.permutation)
(Tile: TILE with type transformation =
Geom.transformation * Permutation.permutation)
=
Make_tiling
(Make_generator_from_canonical
(Make_canonical_generator(Group))
(MakePair (Make_morphism (Group) (GenMap) (Geom.Tgroup))
(Make_color_morphism (Group) (GenColormap)))
(Tile)
This leads to a simplified graphical representation which appears in Fig. 3.
7. Conclusion
What we have obtained is a very generic program that can produce any tiling with a computable symmetry group that operate transitively on the tiles. ..."