Personal tools

Blog articles/Comparisons

From HaskellWiki

< Blog articles(Difference between revisions)
Jump to: navigation, search
(Oz: No more Oz...)
 
(40 intermediate revisions by 7 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 7: Line 7:
 
== CAL ==
 
== CAL ==
 
* [http://jpmoresmau.blogspot.com/2007/04/haskell-code-java-ui.html Haskell code/Java UI]
 
* [http://jpmoresmau.blogspot.com/2007/04/haskell-code-java-ui.html Haskell code/Java UI]
  +
  +
== F# ==
  +
  +
* [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 ==
  +
  +
* [http://enfranchisedmind.com/blog/posts/a-monad-tutorial-for-ocaml/ A Monad Tutorial for Ocaml]
  +
* [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://blog.tornkvist.org/?id=1185571582964040 Compiling Haskell to Erlang]
+
* [http://chlorophil.blogspot.com/2007/11/pare-parallel-execution-in-erlang.html PARE - PARallel Execution in Erlang - a response to Haskell]
   
 
== 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]
  +
   
== Oz ==
 
* [http://boriken.frayser.org/wordpress/2007/07/04/appreciating-chr-constraint-handling-rules-systems/ Appreciating Constraint Programming]
 
   
 
== Qi ==
 
== Qi ==
Line 24: Line 40:
 
* [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]
  +
  +
== Prolog ==
  +
  +
[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 =
  +
  +
== Epigram ==
  +
  +
* [http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70 Peano induction for binary numbers (bis)]
  +
* [http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=72 Peano: episode 3]
  +
  +
== Agda ==
  +
  +
* [http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=71 Simple proof of stack correctness for a tiny language (in Agda)]
  +
* [http://www.iis.sinica.edu.tw/~scm/?p=35 My First Agda Program: Append, Reverse, and Merge]
  +
* [http://www.iis.sinica.edu.tw/~scm/?p=36 Agda Exercise: Sized Mergesort]
  +
  +
== Coq ==
  +
  +
* [http://blog.mikael.johanssons.org/archive/2007/08/coq-and-simple-group-theory/ Coq and simple group theory]
  +
* [http://sequence.complete.org/node/358 Coq and The Monad Laws: Introduction]
  +
  +
  +
== Isabelle ==
  +
  +
* [http://users.lava.net/~newsham/formal/reverse/ Proving Haskell programs correct with Isabelle/HOL]
   
 
= Stack programming =
 
= Stack programming =
Line 36: Line 84:
 
== Forth ==
 
== Forth ==
 
* [http://shaurz.wordpress.com/2007/03/03/forth-as-a-haskell-dsl-or-lambda-the-ultimate-stack/ Forth as a Haskell DSL]
 
* [http://shaurz.wordpress.com/2007/03/03/forth-as-a-haskell-dsl-or-lambda-the-ultimate-stack/ Forth as a Haskell DSL]
  +
* [http://wiki.forthfreak.net/index.cgi?FunForth Functional Forth]
   
 
== Factor ==
 
== Factor ==
 
* [http://www.bluishcoder.co.nz/2006/10/factor-parser-combinator-example.html Haskell-style parser combinators in Factor: s-expression reader]
 
* [http://www.bluishcoder.co.nz/2006/10/factor-parser-combinator-example.html Haskell-style parser combinators in Factor: s-expression reader]
 
* [http://useless-factor.blogspot.com/2007/08/factors-curry.html Factor with a dash of curry]
 
* [http://useless-factor.blogspot.com/2007/08/factors-curry.html Factor with a dash of curry]
  +
  +
== Cat ==
  +
* [http://pied.mine.nu//index.php?page=Lambda&id=22 Cat in Haskell]
   
 
= Imperative, statically typed =
 
= Imperative, statically typed =
Line 51: Line 103:
   
 
== C# ==
 
== C# ==
  +
* [http://themechanicalbride.blogspot.com/2007/04/haskell-for-c-3-programmers.html Haskell for C# 3 Programmers]
 
* [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://themechanicalbride.blogspot.com/2007/04/haskell-for-c-3-programmers.html Haskell for C# 3 Programmers]
+
* [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]
 
* [http://realfiction.net/?q=node/117 How much Haskell can I squeeze out of C#?]
 
* [http://realfiction.net/?q=node/117 How much Haskell can I squeeze out of C#?]
 
* [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://zerogradient.wordpress.com/2007/12/05/functional-programming-on-net-part-1/ Functional Programming on .NET - Part 1]
  +
* [http://gavinbierman.blogspot.com/2007/11/laziness-in-clinq.html Laziness in C#/LINQ]
  +
* [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++ ==
  +
  +
* [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 67: Line 134:
 
* [http://www.javac.info/closures-v03.html Closures and bottom for Java]
 
* [http://www.javac.info/closures-v03.html Closures and bottom for Java]
 
* [http://jpmoresmau.blogspot.com/2006/12/in-haskell-you-can-define-infinite.html An infinite list in Java]
 
* [http://jpmoresmau.blogspot.com/2006/12/in-haskell-you-can-define-infinite.html An infinite list in Java]
  +
* [http://jpmoresmau.blogspot.com/2007/09/parser-combinator-in-java.html Parser combinators in Java]
 
* [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://jpmoresmau.blogspot.com/2007/11/structure-of-functional-java-er-method.html Structure of a functional Java, er, method]
   
 
== Scala ==
 
== Scala ==
Line 73: 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 78: Line 152:
 
== Javascript ==
 
== Javascript ==
 
* [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://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 6 ==
+
== 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 89: Line 171:
 
* [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 100: Line 191:
 
* [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://etorreborre.blogspot.com/2007/04/pattern-matching-with-ruby.html Pattern matching in Ruby]
 
 
* [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]
  +
* [http://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 15:45, 26 January 2012


Articles comparing Haskell to other languages, or describing the use of Haskell techniques in other languages.

Contents

[edit] 1 Functional programming

[edit] 1.1 CAL

[edit] 1.2 F#

[edit] 1.3 OCaml

[edit] 1.4 Erlang

[edit] 1.5 Lisp


[edit] 1.6 Qi

[edit] 1.7 Prolog

A Wake Up Call for the Logic Programming Community

[edit] 1.8 Scheme

[edit] 1.9 XSLT

[edit] 1.10 CAS Mathematica

[edit] 2 Theorem provers

[edit] 2.1 Epigram

[edit] 2.2 Agda

[edit] 2.3 Coq


[edit] 2.4 Isabelle

[edit] 3 Stack programming

[edit] 3.1 Forth

[edit] 3.2 Factor

[edit] 3.3 Cat

[edit] 4 Imperative, statically typed

[edit] 4.1 Ada

[edit] 4.2 C

[edit] 4.3 C#

[edit] 4.4 C++

[edit] 4.5 Eiffel

[edit] 4.6 Java

[edit] 4.7 Scala

[edit] 5 Imperative, dynamically typed

[edit] 5.1 Javascript

[edit] 5.2 ActionScript

[edit] 5.3 Lua

[edit] 5.4 Perl

[edit] 5.5 Python

[edit] 5.6 Ruby