Difference between revisions of "Blog articles/Comparisons"
Jump to navigation
Jump to search
DonStewart (talk | contribs) |
Brianbower (talk | contribs) m (Fixing broken link.) |
||
(25 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Tutorials]] |
[[Category:Tutorials]] |
||
− | Articles comparing Haskell to other languages |
+ | Articles comparing Haskell to other languages, or describing the use of |
+ | Haskell techniques in other languages. |
||
= Functional programming = |
= Functional programming = |
||
Line 11: | Line 12: | ||
* [http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspxF#'s monadic syntax] |
* [http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspxF#'s monadic syntax] |
||
+ | * [http://corsis.blogspot.com/2008/01/haskell-and-f-language-design.html Haskell and F#: Language Design] |
||
+ | * [http://www.quanttec.com/fparsec/ FParsec - A Parser Combinator Library for F#] |
||
+ | * [http://jyliao.blogspot.com/2007/11/learning-wpf-with-f-dock-and-grid.html zip in F# and Haskell] |
||
+ | * [http://www.brandonwerner.com/2008/01/13/the-rise-of-functional-programming-fscalahaskell-and-the-failing-of-lisp/ The Rise Of Functional Programming: F#/Scala/Haskell and the failing of Lisp] |
||
+ | * [http://cs.hubfs.net/blogs/hell_is_other_languages/archive/2008/01/16/4565.aspx Software Transactional Memory for F#] |
||
+ | * [http://fortysix-and-two.blogspot.com/2008/05/fscheck-random-testing-for-f.html QuickCheck for F#] |
||
+ | * [http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!256.entry Catamorphisms in F#] |
||
== OCaml == |
== OCaml == |
||
− | * [http://enfranchisedmind.com/blog/ |
+ | * [http://enfranchisedmind.com/blog/posts/a-monad-tutorial-for-ocaml/ A Monad Tutorial for Ocaml] |
− | * [http:// |
+ | * [http://alaska-kamtchatka.blogspot.com/2008/01/pointless-polymorphism.html Pointfree programming in OCaml] |
== Erlang == |
== Erlang == |
||
* [http://www.acooke.org/cute/ErlangsSyn0.html Small comparison of Erlang's syntactic difficulties] |
* [http://www.acooke.org/cute/ErlangsSyn0.html Small comparison of Erlang's syntactic difficulties] |
||
+ | * [http://chlorophil.blogspot.com/2007/11/pare-parallel-execution-in-erlang.html PARE - PARallel Execution in Erlang - a response to Haskell] |
||
− | * [http://blog.tornkvist.org/?id=1185571582964040 Compiling Haskell to Erlang] |
||
== Lisp == |
== Lisp == |
||
* [http://www.defmacro.org/ramblings/lisp-in-haskell.html Writing lisp in Haskell] |
* [http://www.defmacro.org/ramblings/lisp-in-haskell.html Writing lisp in Haskell] |
||
* [http://common-lisp.net/project/patty/patty.html Haskell like data structures in Common Lisp] |
* [http://common-lisp.net/project/patty/patty.html Haskell like data structures in Common Lisp] |
||
+ | * [http://blog.superadditive.com/2007/11/09/list-comprehensions-in-common-lisp/ List comprehensions in Common Lisp] |
||
+ | |||
⚫ | |||
− | * [http://boriken.frayser.org/wordpress/2007/07/04/appreciating-chr-constraint-handling-rules-systems/ Appreciating Constraint Programming] |
||
== Qi == |
== Qi == |
||
Line 33: | Line 41: | ||
* [http://programmingkungfuqi.blogspot.com/2007/08/haskell-like-type-classes-in-qi.html Haskell-like Type Classes in Qi] |
* [http://programmingkungfuqi.blogspot.com/2007/08/haskell-like-type-classes-in-qi.html Haskell-like Type Classes in Qi] |
||
* [http://programmingkungfuqi.blogspot.com/2007/08/existential-data-constructors-in.html Existential Data Constructors in Haskell and Qi] |
* [http://programmingkungfuqi.blogspot.com/2007/08/existential-data-constructors-in.html Existential Data Constructors in Haskell and Qi] |
||
+ | |||
⚫ | |||
+ | |||
+ | [http://www.cs.kuleuven.ac.be/~dtai/projects/ALP/newsletter/dec07/content/Articles/tom/content.html A Wake Up Call for the Logic Programming Community] |
||
== Scheme == |
== Scheme == |
||
* [http://sami.samhuri.net/2007/6/25/floating-point-in-elschemo Floating point in ElSchemo (a scheme written in Haskell)] |
* [http://sami.samhuri.net/2007/6/25/floating-point-in-elschemo Floating point in ElSchemo (a scheme written in Haskell)] |
||
* [http://programming.reddit.com/goto?id=nq1k Haskell versus Scheme] |
* [http://programming.reddit.com/goto?id=nq1k Haskell versus Scheme] |
||
+ | * [http://shaurz.wordpress.com/2008/03/11/haskell-style-parser-combinators-in-scheme/ Haskell-style parser combinators in Scheme] |
||
+ | * [http://blog.plt-scheme.org/2007/11/getting-rid-of-set-car-and-set-cdr.html Immutable lists for PLT Scheme] |
||
== XSLT == |
== XSLT == |
||
* [http://porg.es/blog/computing-with-xslt Computing with XSLT] |
* [http://porg.es/blog/computing-with-xslt Computing with XSLT] |
||
+ | |||
+ | == CAS Mathematica == |
||
+ | * [http://zufaellige-reflektion.blogspot.com/2011/01/haskell-eiger-for-mathematica.html Functional programming examples] |
||
= Theorem provers = |
= Theorem provers = |
||
Line 56: | Line 73: | ||
== Coq == |
== Coq == |
||
− | * [http://blog.mikael.johanssons.org/archive/2007/08/coq-and-simple-group-theory/ Coq and simple group theory] |
+ | * [https://web.archive.org/web/20110225053451/http://blog.mikael.johanssons.org/archive/2007/08/coq-and-simple-group-theory/ Coq and simple group theory] (Web archive) |
* [http://sequence.complete.org/node/358 Coq and The Monad Laws: Introduction] |
* [http://sequence.complete.org/node/358 Coq and The Monad Laws: Introduction] |
||
− | |||
== Isabelle == |
== Isabelle == |
||
Line 90: | Line 106: | ||
* [http://www.developer.com/net/csharp/article.php/3598381 The New Lambda Expressions Feature in C# 3.0] |
* [http://www.developer.com/net/csharp/article.php/3598381 The New Lambda Expressions Feature in C# 3.0] |
||
* [http://blogs.msdn.com/wesdyer/archive/2007/03/01/immutability-purity-and-referential-transparency.aspx Immutability, Purity, and Referential Transparency in C#] |
* [http://blogs.msdn.com/wesdyer/archive/2007/03/01/immutability-purity-and-referential-transparency.aspx Immutability, Purity, and Referential Transparency in C#] |
||
+ | * [http://blogs.msdn.com/ericlippert/archive/2007/10/04/path-finding-using-a-in-c-3-0-part-two.aspx "Immutable data structures are the way of the future in C#"] |
||
* [http://lukeplant.me.uk/blog.php?id=1107301659 Null pointers vs None vs Maybe] |
* [http://lukeplant.me.uk/blog.php?id=1107301659 Null pointers vs None vs Maybe] |
||
* [http://enfranchisedmind.com/blog/archive/2007/07/10/279 The "ole in the middle "pattern] |
* [http://enfranchisedmind.com/blog/archive/2007/07/10/279 The "ole in the middle "pattern] |
||
Line 95: | Line 112: | ||
* [http://blogs.msdn.com/lukeh/archive/2007/08/19/monadic-parser-combinators-using-c-3-0.aspx Monadic Parser Combinators using C# 3.0] |
* [http://blogs.msdn.com/lukeh/archive/2007/08/19/monadic-parser-combinators-using-c-3-0.aspx Monadic Parser Combinators using C# 3.0] |
||
* [http://www.aboutcode.net/2007/09/27/Lazy+Functions+In+LINQ.aspx Lazy functions in C#] |
* [http://www.aboutcode.net/2007/09/27/Lazy+Functions+In+LINQ.aspx Lazy functions in C#] |
||
+ | * [http://zerogradient.wordpress.com/2007/12/05/functional-programming-on-net-part-1/ Functional Programming on .NET - Part 1] |
||
⚫ | |||
+ | * [http://diditwith.net/2007/11/14/ImproveYourCBorrowFromF.aspx Improve Your C#! Borrow from F#...] |
||
+ | * [http://blogs.msdn.com/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx? The Marvels of Monads (in C#)] |
||
+ | * [http://www.bluebytesoftware.com/blog/CommentView,guid,bae6ac13-2a95-4887-9ee3-3e64867c5650.aspx Immutable types can copy the world& safely!] |
||
+ | * [http://blogs.msdn.com/ericlippert/archive/2007/12/19/immutability-in-c-part-seven-more-on-binary-trees.aspx Immutability in C# Part Seven: More on Binary Trees] |
||
+ | * [http://blogs.msdn.com/lucabol/archive/2008/01/11/creating-an-immutable-value-object-in-c-part-v-using-a-library.aspx Creating an immutable value object in C# - Part V - Using a library] |
||
== C++ == |
== C++ == |
||
* [http://ken.friislarsen.net/blog/2005/03/03/gadt-in-c/ GADTs in C++] |
* [http://ken.friislarsen.net/blog/2005/03/03/gadt-in-c/ GADTs in C++] |
||
+ | * [http://arandomspot.blogspot.com/2007/10/optional-design-pattern.html Maybe in C++] |
||
+ | * [http://www.rubinsteyn.com/template_insanity.html Type metaprogramming in Haskell and C++] |
||
== Eiffel == |
== Eiffel == |
||
Line 111: | Line 137: | ||
* [http://blog.tmorris.net/maybe-monad-in-java/ Maybe monad in Java] |
* [http://blog.tmorris.net/maybe-monad-in-java/ Maybe monad in Java] |
||
* [http://rickyclarkson.blogspot.com/2007/09/point-free-programming-in-java-7-beyond.html Point-free Programming in Java 7 - Beyond Closures] |
* [http://rickyclarkson.blogspot.com/2007/09/point-free-programming-in-java-7-beyond.html Point-free Programming in Java 7 - Beyond Closures] |
||
+ | * [http://jpmoresmau.blogspot.com/2007/11/structure-of-functional-java-er-method.html Structure of a functional Java, er, method] |
||
== Scala == |
== Scala == |
||
Line 116: | Line 143: | ||
* [http://blog.tmorris.net/the-power-of-type-classes-with-scala-implicit-defs Type classes] |
* [http://blog.tmorris.net/the-power-of-type-classes-with-scala-implicit-defs Type classes] |
||
* [http://www.cs.kuleuven.be/~adriaan/?q=cft_intro Generics for type-safe persistence] |
* [http://www.cs.kuleuven.be/~adriaan/?q=cft_intro Generics for type-safe persistence] |
||
+ | * [http://www.drmaciver.com/2008/01/why-not-scala/ Why not Scala?] |
||
+ | * [http://debasishg.blogspot.com/2008/03/monads-another-way-to-abstract.html Monads in Scala] |
||
+ | * [http://patricklogan.blogspot.com/2008/01/scala-buzzzzings.html Scala Buzzzzings] |
||
+ | * [http://scala-blogs.org/2008/01/roman-numerals-in-scala.html unfolds in scala] |
||
= Imperative, dynamically typed = |
= Imperative, dynamically typed = |
||
Line 122: | Line 153: | ||
* [http://satta.org/2007/01/08/foldr-and-foldl-in-javascript/ foldr and foldl in JavaScript] |
* [http://satta.org/2007/01/08/foldr-and-foldl-in-javascript/ foldr and foldl in JavaScript] |
||
* [http://osteele.com/sources/javascript/functional/ Functional Javascript] |
* [http://osteele.com/sources/javascript/functional/ Functional Javascript] |
||
+ | * [http://w3future.com/weblog/stories/2008/06/16/adtinjs.xml Algebraic data types in JS] |
||
+ | * [http://infrared-clearance.blogspot.com/2008/07/top-down-operator-precedence-in-haskell.html JavaScript translated and compared to Haskell] |
||
+ | |||
+ | == ActionScript == |
||
+ | |||
+ | *[http://gasi.ch/blog/2008/03/29/functional-actionscript-part-1/ Haskell and ActionScript] |
||
== Lua == |
== Lua == |
||
* [http://salimma.livejournal.com/72850.html Lazy streams for Lua] |
* [http://salimma.livejournal.com/72850.html Lazy streams for Lua] |
||
− | == Perl |
+ | == Perl == |
+ | * [http://blog.plover.com/2007/11/30/#pow-sqrt Comparative terseness of Perl and Haskell] |
||
* [http://diveintoperl6.blogspot.com/2007/05/perl-6-round-1_22.html Perl 6] |
* [http://diveintoperl6.blogspot.com/2007/05/perl-6-round-1_22.html Perl 6] |
||
+ | * [http://osfameron.vox.com/library/post/haskell-words-and-perl-split.html Haskell 'words' and Perl 'split'] |
||
== Python == |
== Python == |
||
Line 133: | Line 172: | ||
* [http://www.kuarepoti-dju.net/index.php?p=86 Using Haskell in Python: haskellembed] |
* [http://www.kuarepoti-dju.net/index.php?p=86 Using Haskell in Python: haskellembed] |
||
* [http://lukeplant.me.uk/blog.php?id=1107301643 Understanding Monads Via Python List Comprehensions] |
* [http://lukeplant.me.uk/blog.php?id=1107301643 Understanding Monads Via Python List Comprehensions] |
||
+ | * [http://the-little-haskeller.blogspot.com/2007/11/solve-ball-clock-puzzle-in-python-and.html Solve Ball Clock Puzzle in Python and Haskell] |
||
+ | * [http://blog.moertel.com/articles/2008/03/19/property-checking-with-pythons-nose-testing-framework Property checking with Python's nose testing framework] |
||
+ | * [http://www.valuedlessons.com/2008/03/why-are-my-monads-so-slow.html Why are my monads (in Python) so slow?] |
||
+ | * [http://www.valuedlessons.com/2008/01/monads-in-python-with-nice-syntax.html Monads in Python (with nice syntax!)] |
||
+ | * [http://www.valuedlessons.com/2008/01/recently-i-wrote-about-ways-to-add.html Haskell's do syntax for python and ruby] |
||
+ | * [http://ndanger.org/blog/2008/01/16/error-handling-in-python-monads-are-too-much-for-me/ Error handling in Python: monads are too much for me] |
||
+ | * [http://sigfpe.blogspot.com/2008/02/purely-functional-recursive-types-in.html Purely functional recursive types in Haskell and Python] |
||
+ | * [http://www.valuedlessons.com/2008/02/pysec-monadic-combinatoric-parsing-in.html Pysec: Monadic Combinatoric Parsing in Python (aka Parsec in Python)] |
||
+ | * [http://www.valuedlessons.com/2007/12/immutable-data-in-python-record-or.html Immutable Data in Python (Record or Named Tuple)] |
||
== Ruby == |
== Ruby == |
||
Line 144: | Line 192: | ||
* [http://praisecurseandrecurse.blogspot.com/2007/03/haskell-for-short-attention-span-run.html part 1] |
* [http://praisecurseandrecurse.blogspot.com/2007/03/haskell-for-short-attention-span-run.html part 1] |
||
* [http://onthebalcony.wordpress.com/2007/03/10/ruby-and-elegance-transpose/ zip and transpose] |
* [http://onthebalcony.wordpress.com/2007/03/10/ruby-and-elegance-transpose/ zip and transpose] |
||
⚫ | |||
* [http://cdsmith.wordpress.com/2007/07/29/37-reasons-to-love-haskell-playing-off-the-ruby-article/ 37 Reasons to Love Haskell] |
* [http://cdsmith.wordpress.com/2007/07/29/37-reasons-to-love-haskell-playing-off-the-ruby-article/ 37 Reasons to Love Haskell] |
||
+ | * [http://etorreborre.blogspot.com/2007/04/pattern-matching-with-ruby.html Pattern matching in Ruby] |
||
+ | * [http://blog.pretheory.com/arch/2007/11/pattern_matching_in_ruby_1.php Pattern matching in Ruby] |
||
+ | * [http://weblog.raganwald.com/2007/11/really-useful-anamorphisms-in-ruby.html Anamorphisms in Ruby] |
||
+ | * [http://feedingthesnake.wordpress.com/2007/11/30/python-haskell-ruby-smackdown/ Python, Haskell, Ruby Smackdown] |
||
+ | * [https://blog.codenoise.com/2008/03/prospering-with-ruby-vs-haskell Prospering with ruby vs. haskell] |
||
+ | * [http://www.valuedlessons.com/2008/01/monads-in-ruby-with-nice-syntax.html Monads in Ruby (with nice syntax!)] |
Latest revision as of 23:42, 13 October 2019
Articles comparing Haskell to other languages, or describing the use of
Haskell techniques in other languages.
Functional programming
CAL
F#
- monadic syntax
- Haskell and F#: Language Design
- FParsec - A Parser Combinator Library for F#
- zip in F# and Haskell
- The Rise Of Functional Programming: F#/Scala/Haskell and the failing of Lisp
- Software Transactional Memory for F#
- QuickCheck for F#
- Catamorphisms in F#
OCaml
Erlang
- Small comparison of Erlang's syntactic difficulties
- PARE - PARallel Execution in Erlang - a response to Haskell
Lisp
- Writing lisp in Haskell
- Haskell like data structures in Common Lisp
- List comprehensions in Common Lisp
Qi
- Foldl and Foldr
- SKI in Qi's type system
- Haskell-like Type Classes in Qi
- Existential Data Constructors in Haskell and Qi
Prolog
A Wake Up Call for the Logic Programming Community
Scheme
- Floating point in ElSchemo (a scheme written in Haskell)
- Haskell versus Scheme
- Haskell-style parser combinators in Scheme
- Immutable lists for PLT Scheme
XSLT
CAS Mathematica
Theorem provers
Epigram
Agda
- Simple proof of stack correctness for a tiny language (in Agda)
- My First Agda Program: Append, Reverse, and Merge
- Agda Exercise: Sized Mergesort
Coq
Isabelle
Stack programming
Forth
Factor
Cat
Imperative, statically typed
Ada
C
C#
- Haskell for C# 3 Programmers
- The New Lambda Expressions Feature in C# 3.0
- Immutability, Purity, and Referential Transparency in C#
- "Immutable data structures are the way of the future in C#"
- Null pointers vs None vs Maybe
- The "ole in the middle "pattern
- How much Haskell can I squeeze out of C#?
- Monadic Parser Combinators using C# 3.0
- Lazy functions in C#
- Functional Programming on .NET - Part 1
- Laziness in C#/LINQ
- Improve Your C#! Borrow from F#...
- The Marvels of Monads (in C#)
- Immutable types can copy the world& safely!
- Immutability in C# Part Seven: More on Binary Trees
- Creating an immutable value object in C# - Part V - Using a library
C++
Eiffel
Java
- More Haskell in Java 7 or 8?
- Type classes in Java
- Closures and bottom for Java
- An infinite list in Java
- Parser combinators in Java
- Maybe monad in Java
- Point-free Programming in Java 7 - Beyond Closures
- Structure of a functional Java, er, method
Scala
- Haskell, CAL and Scala
- Type classes
- Generics for type-safe persistence
- Why not Scala?
- Monads in Scala
- Scala Buzzzzings
- unfolds in scala
Imperative, dynamically typed
Javascript
- foldr and foldl in JavaScript
- Functional Javascript
- Algebraic data types in JS
- JavaScript translated and compared to Haskell
ActionScript
Lua
Perl
Python
- Haskell versus Python
- Using Haskell in Python: haskellembed
- Understanding Monads Via Python List Comprehensions
- Solve Ball Clock Puzzle in Python and Haskell
- Property checking with Python's nose testing framework
- Why are my monads (in Python) so slow?
- Monads in Python (with nice syntax!)
- Haskell's do syntax for python and ruby
- Error handling in Python: monads are too much for me
- Purely functional recursive types in Haskell and Python
- Pysec: Monadic Combinatoric Parsing in Python (aka Parsec in Python)
- Immutable Data in Python (Record or Named Tuple)
Ruby
- Ruby vs Haskell: choose what works
- Haskell: open secret in Ruby land
- Haskell Eye for the Ruby Guy
- Monads in Ruby
- RushCheck, a lightweight random testing tool for Ruby similar to QuickCheck
- part 1
- zip and transpose
- 37 Reasons to Love Haskell
- Pattern matching in Ruby
- Pattern matching in Ruby
- Anamorphisms in Ruby
- Python, Haskell, Ruby Smackdown
- Prospering with ruby vs. haskell
- Monads in Ruby (with nice syntax!)