fp4rd
fp4rd copied to clipboard
Interested in partnering / combining / cross-pollinating with Rumonade?
Hi Jessi,
I like what you are doing here, and wondered if you'd be interested in discussing combining some of these ideas with the Rumonade library.
(My name is Marc, and I also work in both the Ruby/Scala worlds)
If you'd like, you can reach me via email at [email protected].
Regards, -Marc
oh! yes! This is very interesting.
I've been looking for something like that. I started something (as far as reserving a gem name and implementing exactly what I needed for my demo) as rubyz. I'd love to talk about this!
Here's a question, something I've been mulling over. The name of the method "map" - in Ruby this is a standard method on Enumerable that always returns an array. Implementing "map" in the functional meaning of it violates the Rubyists's expectations. Implementing it in the Ruby way violates the FP-er's expectations.
At first I wanted Either to extend Enumerable, but then that was too far wrong. Bringing in Ruby's version of map was not acceptable. I settled for a different method name, without the conflicting meanings. (transform, as seen in Guava's collections for Java.)
What is your thought on conflicting expectations between Rubyists and FP? And on FP terms in general - as a longtime Java dev I find "map" confusing anyway. In Java a map is a dictionary.
Why did you use "select" for filter?
What's your background?
and why "Prefer blocks to lambda/Procs"?
Jessica
On Sun, Oct 20, 2013 at 12:54 PM, Marc Siegel [email protected]:
Hi Jessi,
I like what you are doing here, and wondered if you'd be interested in discussing combining some of these ideas with the Rumonade library.
(My name is Marc, and I also work in both the Ruby/Scala worlds)
If you'd like, you can reach me via email at [email protected].
Regards, -Marc
— Reply to this email directly or view it on GitHubhttps://github.com/jessitron/fp4rd/issues/1 .
Great!
I'll get back to you on these points ASAP -- I'm busy running around this morning trying to work out a tourist visa issue -- but I'm glad to hear we might pool insights here!
-Marc
On Sun, Oct 20, 2013 at 4:47 PM, Jessica Kerr [email protected]:
oh! yes! This is very interesting.
I've been looking for something like that. I started something (as far as reserving a gem name and implementing exactly what I needed for my demo) as rubyz. I'd love to talk about this!
Here's a question, something I've been mulling over. The name of the method "map" - in Ruby this is a standard method on Enumerable that always returns an array. Implementing "map" in the functional meaning of it violates the Rubyists's expectations. Implementing it in the Ruby way violates the FP-er's expectations.
At first I wanted Either to extend Enumerable, but then that was too far wrong. Bringing in Ruby's version of map was not acceptable. I settled for a different method name, without the conflicting meanings. (transform, as seen in Guava's collections for Java.)
What is your thought on conflicting expectations between Rubyists and FP? And on FP terms in general - as a longtime Java dev I find "map" confusing anyway. In Java a map is a dictionary.
Why did you use "select" for filter?
What's your background?
and why "Prefer blocks to lambda/Procs"?
Jessica
On Sun, Oct 20, 2013 at 12:54 PM, Marc Siegel [email protected]:
Hi Jessi,
I like what you are doing here, and wondered if you'd be interested in discussing combining some of these ideas with the Rumonade library.
(My name is Marc, and I also work in both the Ruby/Scala worlds)
If you'd like, you can reach me via email at [email protected].
Regards, -Marc
— Reply to this email directly or view it on GitHub< https://github.com/jessitron/fp4rd/issues/1> .
— Reply to this email directly or view it on GitHubhttps://github.com/jessitron/fp4rd/issues/1#issuecomment-26682213 .
Marc Siegel Technology Specialist American Technology Innovations
Email: [email protected] Phone: 1 (617) 399-8145 Cell: 1 (617) 223-1220 Fax: 1 (617) 334-7975
Hi Jessica,
I'm a big fan of the Ruby community's ability to create enormously powerful, practical software, in a way that doesn't require every contributor to be an expert in everything, but does allow experts to create useful tools for others.
I'm currently leading a team within an organization that was previously all Java, but which has transitioned to modern web apps based on the Scala Play Framework.
I personally think that pushing too hard in the direction of FP is a mistake in Ruby, and my goal with Rumonade (as opposed to other "FP in Ruby" type efforts out there) was to try to identify patterns of usage that actually gel well with how idiomatic Ruby work is done.
So, for methods named map, flat_map, and select, these method names are familiar to all Rubyists. They are present on Array and in fact on all Enumerables already. We just provide, for example, an Option class, in such a way that you just type:
[Some(1), None, Some(2), None].flatten
# => [1, 2]
...and have it just work.
In other words, I'm really trying to cherry pick patterns and concepts that are useful in Scala (of which we are already looking at a cherry-picked subset from Haskell, for the most part), and find a few that would really materially benefit Rubyists, and package those.
Does that approach appeal to you at all?
Regards, -Marc
On Mon, Oct 21, 2013 at 7:30 AM, Marc Siegel [email protected] wrote:
Great!
I'll get back to you on these points ASAP -- I'm busy running around this morning trying to work out a tourist visa issue -- but I'm glad to hear we might pool insights here!
-Marc
On Sun, Oct 20, 2013 at 4:47 PM, Jessica Kerr [email protected]:
oh! yes! This is very interesting.
I've been looking for something like that. I started something (as far as reserving a gem name and implementing exactly what I needed for my demo) as rubyz. I'd love to talk about this!
Here's a question, something I've been mulling over. The name of the method "map" - in Ruby this is a standard method on Enumerable that always returns an array. Implementing "map" in the functional meaning of it violates the Rubyists's expectations. Implementing it in the Ruby way violates the FP-er's expectations.
At first I wanted Either to extend Enumerable, but then that was too far wrong. Bringing in Ruby's version of map was not acceptable. I settled for a different method name, without the conflicting meanings. (transform, as seen in Guava's collections for Java.)
What is your thought on conflicting expectations between Rubyists and FP? And on FP terms in general - as a longtime Java dev I find "map" confusing anyway. In Java a map is a dictionary.
Why did you use "select" for filter?
What's your background?
and why "Prefer blocks to lambda/Procs"?
Jessica
On Sun, Oct 20, 2013 at 12:54 PM, Marc Siegel [email protected]:
Hi Jessi,
I like what you are doing here, and wondered if you'd be interested in discussing combining some of these ideas with the Rumonade library.
(My name is Marc, and I also work in both the Ruby/Scala worlds)
If you'd like, you can reach me via email at [email protected].
Regards, -Marc
— Reply to this email directly or view it on GitHub< https://github.com/jessitron/fp4rd/issues/1> .
— Reply to this email directly or view it on GitHubhttps://github.com/jessitron/fp4rd/issues/1#issuecomment-26682213 .
Marc Siegel Technology Specialist American Technology Innovations
Email: [email protected] Phone: 1 (617) 399-8145 Cell: 1 (617) 223-1220 Fax: 1 (617) 334-7975
Marc Siegel Technology Specialist American Technology Innovations
Email: [email protected] Phone: 1 (617) 399-8145 Cell: 1 (617) 223-1220 Fax: 1 (617) 334-7975
That's definitely something of interest to me. :)
My name is Mario Aquino and I'm also a contributor to this repo and often collaborate w Jessica on her Ruby explorations. I'm a Ruby dev by day (formerly a Java developer) and I'm learning Scala (w Jessica's help) on the side. I'm interested in Rumonade. I had a look at the readme and will poke at it on my own. I'd be willing to contribute some time and effort as well.
Cool that's excellent Mario! Let me know what areas interest you. Are you working in Scala on Play Framework or other Typesafe technologies, or on Lift, Finagle, or other technologies? Are you using Scalaz?
-Marc
On Tue, Oct 22, 2013 at 6:58 PM, Mario Aquino [email protected]:
That's definitely something of interest to me. :)
My name is Mario Aquino and I'm also a contributor to this repo and often collaborate w Jessica on her Ruby explorations. I'm a Ruby dev by day (formerly a Java developer) and I'm learning Scala (w Jessica's help) on the side. I'm interested in Rumonade. I had a look at the readme and will poke at it on my own. I'd be willing to contribute some time and effort as well.
— Reply to this email directly or view it on GitHubhttps://github.com/jessitron/fp4rd/issues/1#issuecomment-26861874 .
Marc Siegel Technology Specialist American Technology Innovations
Email: [email protected] Phone: 1 (617) 399-8145 Cell: 1 (617) 223-1220 Fax: 1 (617) 334-7975
Marc,
Really none of those. I've started going through the Functional Programming in Scala book as well as the coursera Scala course. My studies are under Jessica's tutelage and those other sources. I'm interested in getting more comfortable with the functional paradigm and see how it influences my design instincts.
I've been exposed to scalaz through something Jessica and I worked on together and found it quite magical. :) Play and Lift aren't things on my list to investigate yet. I'd like to learn the language well and perhaps contribute to library development with ideas that come to me from studying scala.
What drew you to scala initially? For me, it was another language to learn. I've seen enough presentations on scala that appealed to me enough to decide to learn it, despite having no practical need for it yet.
On Tuesday, October 22, 2013, Marc Siegel wrote:
Cool that's excellent Mario! Let me know what areas interest you. Are you working in Scala on Play Framework or other Typesafe technologies, or on Lift, Finagle, or other technologies? Are you using Scalaz?
-Marc
On Tue, Oct 22, 2013 at 6:58 PM, Mario Aquino <[email protected]<javascript:_e({}, 'cvml', '[email protected]');>>wrote:
That's definitely something of interest to me. :)
My name is Mario Aquino and I'm also a contributor to this repo and often collaborate w Jessica on her Ruby explorations. I'm a Ruby dev by day (formerly a Java developer) and I'm learning Scala (w Jessica's help) on the side. I'm interested in Rumonade. I had a look at the readme and will poke at it on my own. I'd be willing to contribute some time and effort as well.
— Reply to this email directly or view it on GitHub< https://github.com/jessitron/fp4rd/issues/1#issuecomment-26861874> .
Marc Siegel Technology Specialist American Technology Innovations
Email: [email protected] <javascript:_e({}, 'cvml', '[email protected]');> Phone: 1 (617) 399-8145 Cell: 1 (617) 223-1220 Fax: 1 (617) 334-7975
— Reply to this email directly or view it on GitHubhttps://github.com/jessitron/fp4rd/issues/1#issuecomment-26862169 .
--Mario