'to_string' hack exists :

int number = 33;
print (@"$number");

Gee.Traversable supports 'fold' and other few functions :
http://valadoc.org/#!api=gee-0.8/Gee.Traversable

2016-01-12 22:54 GMT+01:00 Afonso <[email protected]>:

> My thoughs about Vala
> =====================
>
> I just started coding in Vala, and i found it's a quite fun language
> to learn, very simillar to Java and C#. The integration with GLib and
> GObject is simply amazing, and the possibilty to generate C code is
> also very pleasant.
>
> As `Vala` is still in a development phase, I would like to suggest
> a few features that could help `Vala` reach the next big step.
>
>
> # More functional support
>
> Altough `Vala` has support for closures, it would be good to hava even
> more functional power.
>
> For example, `Vala` could ship with a `filter` function that supports
> every Gee Collection, something like:
>
> var books = new TreeSet<Book> ();
> books_from_year = books.filter ( (b) => { return year == 1952; });
>
> Other functions could behave the same way, like `map`, `reverse`,
> `folds`, `all`, `any`, `or`, `all`, `takeWhile`, `dropWhile` just to
> mention a few (i know, i know, Vala != Haskell xD).
>
> Also, most closures end with a return statement. It would be a lot
> cleaner if one could skip the `return` statement, for example:
>
> var f = (a) => { a == 2; }; // Instead of { return a == 2; }
>
> It does much more sense in a closure context not to have a return
> statement. Also with mutliple statements closures, `Vala` could behave
> a little bit like `Ruby`, and automatically infer what does the
> closure returns:
>
> var f = ( a, b ) => {
>  a = b - 1;
>  if ( a > b )
>   "ok"; // return "ok";
>  else
>   "not ok"; // return "not ok";
> };
>
>
> # More syntatic sugar for print
>
> Whenever `stdout.printf` or `print` are invoked with an object,
> automatically use `to_string ()` method (like `Java`).
> For example, suppose we have the following class definition:
>
> public class Book : Object {
>  public string title { get; set; }
>  public int year { get; set; }
>
>  public string to_string () {
>   return "Title: %s, Year: %d".printf(this.title, this.year);
>  }
> }
>
> It would be nice if we could simply print an object like this:
>
> void main (string[] args) {
>  Book b = new Book ("The Old Man and the Sea", 1952);
>  print (b); // <=> print (b.to_string());
>
>  /* Output:
>  >> Title: The Old Man and the Sea, Year: 1952
>  */
> }
>
>
> Automatic array printing for basic types (and objects - using
> `to_string ()` method), like so:
>
>  void main (string[] args) {
>   string[] authors = { "George Orwell", "John Steinbeck" };
>   int[] years = { 1999, 2000, 2001 };
>
>  Book b1 = new Book ("The Old Man and the Sea", 1952);
>  Book b2 = new Book ("The Pearl", 1973);
>
>  Book[] books = { b1, b2 };
>
>   print (authors);
>   print (years);
>   print (books);
>
>   /* Output:
>   >> ["George Orwell", "John Steinbeck"]
>   >> [1999, 2000, 2001]
>   >> [Title: The Old Man and the Sea, Year: 1952,
>       Title: The Pearl, Year: 1973]
>   */
>
>  }
>
> Wish you all the best regards
>
> 3º ano, Mestrado Integrado em Engenharia Informática,
> Universidade do Minho
>
> _______________________________________________
> vala-list mailing list
> [email protected]
> https://mail.gnome.org/mailman/listinfo/vala-list
>
_______________________________________________
vala-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to