diff --git a/example/print_array.cpp b/example/print_array.cpp
new file mode 100644
index 0000000..5ce3c8a
--- /dev/null
+++ b/example/print_array.cpp
@@ -0,0 +1,50 @@
+// Copyright 2002 The Trustees of Indiana University.
+
+// Use, modification and distribution is subject to the Boost Software 
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+//  Boost.MultiArray Library
+//  Authors: Ronald Garcia
+//           Jeremy Siek
+//           Andrew Lumsdaine
+//  See http://www.boost.org/libs/multi_array for documentation.
+
+
+#include <iostream>
+#include "boost/multi_array.hpp"
+#include "boost/array.hpp"
+#include "boost/cstdlib.hpp"
+
+template <typename Array>
+void print(std::ostream& os, const Array& A)
+{
+  typename Array::const_iterator i;
+  os << "[";
+  for (i = A.begin(); i != A.end(); ++i) {
+    print(os, *i);
+    if (boost::next(i) != A.end())
+      os << ',';
+  }
+  os << "]";
+}
+void print(std::ostream& os, const double& x)
+{
+  os << x;
+}
+int main()
+{
+  typedef   boost::multi_array<double, 2> array;
+  double values[] = {
+    0, 1, 2,
+    3, 4, 5 
+  };
+  const int values_size=6;
+  array A(boost::extents[2][3]);
+  A.assign(values,values+values_size);
+  print(std::cout, A);
+  return boost::exit_success;
+}
+
+//  The output is: 
+// [[0,1,2],[3,4,5]]
