Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 31 15:06

    ldionne on gh-pages

    Update benchmarks to 490dbf6 fo… (compare)

  • Jan 24 07:47

    ldionne on gh-pages

    Update benchmarks to 490dbf6 fo… (compare)

  • Jan 23 02:04
    pthom commented #432
  • Jan 18 12:46

    ldionne on gh-pages

    Update benchmarks to 490dbf6 fo… (compare)

  • Jan 16 22:27
    ricejasonf commented #434
  • Jan 05 06:22
    ricejasonf commented #330
  • Jan 03 11:40

    ldionne on gh-pages

    Update benchmarks to 490dbf6 fo… (compare)

  • Jan 02 00:33
    ricejasonf closed #434
  • Jan 02 00:33
    ricejasonf commented #434
  • Jan 02 00:04
    ricejasonf opened #434
  • Dec 27 2018 13:11

    ldionne on gh-pages

    Update benchmarks to 490dbf6 fo… (compare)

  • Dec 22 2018 11:56
    pthom commented #432
  • Dec 22 2018 11:55
    pthom commented #432
  • Dec 21 2018 15:48
    pthom synchronize #432
  • Dec 21 2018 09:19
    sdebionne opened #433
  • Dec 21 2018 00:08
    ricejasonf commented #432
  • Dec 21 2018 00:03
    ricejasonf commented #432
  • Dec 20 2018 23:36
    pthom commented #432
  • Dec 20 2018 23:36
    pthom commented #432
  • Dec 20 2018 23:13
    ricejasonf commented #432
Hans Meyer
@HaMster21
@ldionne You don't already have a bii account, have you?
Louis Dionne
@ldionne
Yes, I created one yesterday (or the day before).
Hans Meyer
@HaMster21
And it's also called "Idionne"?
Louis Dionne
@ldionne
Yes
Hans Meyer
@HaMster21
Seems like you can't search for users on biicode.com :worried:
Louis Dionne
@ldionne
Hans Meyer
@HaMster21
:+1:
Manu Sánchez
@Manu343726
People discussing about bii here! This is the last thing I expected ;)
Hans Meyer
@HaMster21
Seems to be the perfect place to make an upcoming library for boost available to everyone ^^
Manu Sánchez
@Manu343726
I'm still trying to get a Haskell type system for metaprogramming, and today I relalized that Concepts Lite is the right way to go. So I was going to start writting concepts for my library but then stoped: What if you can use exactly the same concepts for both the metaprogramming type system and the C++ type system? That's why I'm here.
Louis Dionne
@ldionne
Actually, I want to talk about this with Eric. I think we can make his range library work on heterogeneous sequences by doing subtle modifications to the concepts.
So yeah, your idea isn’t crazy at all Manu.
Manu Sánchez
@Manu343726
First of all I will try to get a Concepts Lite compiler working (I'm trying to build gcc-clite on windows/cygwin, completely unsuccessful. Seems impossible to me being able to play battlefield while doing meta stuff...). Later wrap your existing concepts as constexpr boolean predicates as their implementation expects (What about a clitebranch?). Then I could continue haskellizing both TMP and C++ with Hana as the starting point.
Louis Dionne
@ldionne
That sounds like a great idea, seriously.
One challenge though is that C++ is a strict language. So you can’t have exactly the same concepts as in Haskell. For example, you can’t right fold infinite lists in C++.
This message was deleted
Manu Sánchez
@Manu343726
Of course one of the first things we should do here is to identify what parts of Haskell (Concepts/Typeclasses, prelude, etc) that are directly "mappable" to C++.
Louis Dionne
@ldionne
Functor
Applicative if you let go of automatic currying
Monad just the same
Manu Sánchez
@Manu343726
Do you have a curry adaptor in Hana?
Louis Dionne
@ldionne
For Foldable, you have to consider strict folds only, which means that you can’t implement any, elem and find as lazy right folds. This is why Hana has the Searchable concept, which basically encapsulates Foldables that might be infinite.
Yes, Hana has the curry adaptor.
Regarding Applicative, by the way, Hana uses the curry adaptor to emulate automatic currying. This makes things like f <transform> x <ap> y <ap> z equivalent to curry(f) <transform> x <ap> y <ap> z, where <...> is just infix application of .
Manu Sánchez
@Manu343726
I have been wondering about a lazy adaptor for a long time for exactly this reason. But this "hey do you have an adaptor for X?" is starting to look as reinventing the whole language. I have no problem with that.
Louis Dionne
@ldionne
This exact process happens here. Given f a function inside an Applicative and n arguments inside the same Applicative, I simply fmap curry f, which gives me an Applicative of curried functions.
I’m not sure how a lazy adaptor would help.
To implement lazy folds, I mean.
One problem is that Haskell does deep laziness, in the sense that every subexpressions of every expression is lazy. With a lazy adaptor, we can only get superficial laziness at one level.
Manu Sánchez
@Manu343726
Exactly. That's what I mean by reinventing the language. To make this really work in the most Haskell-like way, users should rely in the features provided here only.
Louis Dionne
@ldionne
I think one thing to reconsider is the value of laziness in a strict language like C++. It is obviously useful in some contexts, but it might not be worth the immense pain that you’re up to if you try to have deep laziness.
Conceptually, having deep laziness in C++ means to do the “evaluation” of lazy thunks manually, whereas it is done automatically in Haskell. Also, you won’t be memoizing the results of computations, which makes a lot of brilliant lazy patterns completely worthless.
My impression is that evaluating lazy thunks manually will be very painful from a programmer’s perspective.
Anyway, that’s the current state of my understanding of things. This is why Hana does not try to go lazy except in some simple cases (e.g. for conditional statements), and this is also why the usual Haskell concepts are broken up into more parts (Iterable, Foldable and Searchable instead of just Foldable in Haskell).