Blog articles/Comparisons
From HaskellWiki
< Blog articles(Difference between revisions)
(→Lisp) |
(→Oz: No more Oz...) |
||
| (21 intermediate revisions 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:// | + | * [http://chlorophil.blogspot.com/2007/11/pare-parallel-execution-in-erlang.html PARE - PARallel Execution in Erlang - a response to Haskell] |
== Lisp == | == Lisp == | ||
| Line 26: | Line 34: | ||
* [http://blog.superadditive.com/2007/11/09/list-comprehensions-in-common-lisp/ List comprehensions in Common Lisp] | * [http://blog.superadditive.com/2007/11/09/list-comprehensions-in-common-lisp/ List comprehensions in Common Lisp] | ||
| - | + | ||
| - | + | ||
== Qi == | == Qi == | ||
| Line 34: | 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] | ||
| + | |||
| + | == 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 = | = Theorem provers = | ||
| Line 91: | Line 107: | ||
* [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 96: | Line 113: | ||
* [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://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++ == | == C++ == | ||
| Line 101: | Line 125: | ||
* [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://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 113: | Line 138: | ||
* [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 118: | Line 144: | ||
* [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 124: | Line 154: | ||
* [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 135: | Line 173: | ||
* [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 146: | Line 193: | ||
* [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] | ||
| + | * [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!)] | ||
Current revision
Articles comparing Haskell to other languages, or describing the use of
Haskell techniques in other languages.
Contents |
1 Functional programming
1.1 CAL
1.2 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#
1.3 OCaml
1.4 Erlang
- Small comparison of Erlang's syntactic difficulties
- PARE - PARallel Execution in Erlang - a response to Haskell
1.5 Lisp
- Writing lisp in Haskell
- Haskell like data structures in Common Lisp
- List comprehensions in Common Lisp
1.6 Qi
- Foldl and Foldr
- SKI in Qi's type system
- Haskell-like Type Classes in Qi
- Existential Data Constructors in Haskell and Qi
1.7 Prolog
A Wake Up Call for the Logic Programming Community
1.8 Scheme
- Floating point in ElSchemo (a scheme written in Haskell)
- Haskell versus Scheme
- Haskell-style parser combinators in Scheme
- Immutable lists for PLT Scheme
1.9 XSLT
1.10 CAS Mathematica
2 Theorem provers
2.1 Epigram
2.2 Agda
- Simple proof of stack correctness for a tiny language (in Agda)
- My First Agda Program: Append, Reverse, and Merge
- Agda Exercise: Sized Mergesort
2.3 Coq
2.4 Isabelle
3 Stack programming
3.1 Forth
3.2 Factor
3.3 Cat
4 Imperative, statically typed
4.1 Ada
4.2 C
4.3 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
4.4 C++
4.5 Eiffel
4.6 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
4.7 Scala
- Haskell, CAL and Scala
- Type classes
- Generics for type-safe persistence
- Why not Scala?
- Monads in Scala
- Scala Buzzzzings
- unfolds in scala
5 Imperative, dynamically typed
5.1 Javascript
- foldr and foldl in JavaScript
- Functional Javascript
- Algebraic data types in JS
- JavaScript translated and compared to Haskell
5.2 ActionScript
5.3 Lua
5.4 Perl
5.5 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)
5.6 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!)
