LanguageExt

Languages and libraries

functional programming library

SHOW HN2014

164points
87comments
#141of 2,272 in 2014
Top 7%of 2014 by points

How HN took it

DebatedReal support and real criticism

9 positive, 11 neutral or asking, 5 mixed, 11 critical, out of 36 comments about the project. Thread score -0.12.

Idea: 6 for, 5 againstDesign: 2 for, 3 againstExecution: 0 for, 2 againstPerformance: 0 for, 1 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Useful for bringing functional style to C# codebases

    From 2 comments
    • Our organization (big C# codebase, newer apps in scala) has doubled down on extremely functional C# (using the NICTA XShapx library which has a lot of overlap with this one).…
      runT1ME on HN
    • > Why bent C# until it looks like something that already exists? Because in the industry at large, JVM == Java and .NET == VB.NET == C#. So bending Java, C# and C++ to have…
      pjmlp on HN
  • Option design that forces handling of None

    From 2 comments
    • Funny I come across this today. Only yesterday did I start turning some of my helper functions and extension methods into a little NuGet library. It's amazing how much overlap…
      steego on HN
    • That's fair enough. I knew implementing it this way would ruffle a few feathers, and I totally understand why. I too would love to see ("a","b"), and proper pattern matching...…
      louthy on HN

Objections

  • Option should preserve null or be algebraically consistent

    From 2 comments
    • Coercing Some (null) to None seems like a bug. Null is a valid value in the type and should be allowed (F# allows it too). Otherwise, a function might accidentally return None…
      MichaelGG on HN
    • A comment on the option type: I think transforming Some(null) into None is wrong. - There is an x for which Some(x) is not a Some. This violates useful invariants. -…
      Strilanc on HN
  • Unidiomatic C# and lowercase function names

    From 2 comments
    • This is a really interesting experiment, although personally I'd find using: var ab = tuple("a","b"); awful. It's very hard to read what is going on here- someone else reading…
      martijn_himself on HN
    • This is a really cool exploration project, but hopefully I will not see this in any production code. Way too un-idiomatic.
      CmonDev on HN
  • Why not just use F# instead

    From 2 comments
    • I hope this does not come across to negative, definitely a nice project, but is this really useful in practice? If you want F# or Haskell syntax, why not just use F# or Haskell?…
      danbruc on HN
    • I am not saying the functionality is useless, but it already exists in other languages. Why force C# to look and behave like F# instead of just using F#?
      danbruc on HN

Requests

  • Support for native C# tuple syntax and pattern matching

    From 2 comments
    • This is a really interesting experiment, although personally I'd find using: var ab = tuple("a","b"); awful. It's very hard to read what is going on here- someone else reading…
      martijn_himself on HN
    • That's fair enough. I knew implementing it this way would ruffle a few feathers, and I totally understand why. I too would love to see ("a","b"), and proper pattern matching...…
      louthy on HN

Questions

  • Does Option<T> parameter still allow null

    From 1 comment
    • Cool stuff. Isn't there still a problem with Option, where when a method takes Option<T> as a parameter, invocations can pass null for that Option<T>? So there's still the…
      bcbrown on HN

Alternatives named

  • F#

    From 2 comments
    • I hope this does not come across to negative, definitely a nice project, but is this really useful in practice? If you want F# or Haskell syntax, why not just use F# or Haskell?…
      danbruc on HN
    • Just use F# from Xamarin. It's the real deal. C# is just a stop-gap measure to suck in the enterprise devs.
      nbevans on HN
  • NICTA XShapx

    From 1 comment
    • Our organization (big C# codebase, newer apps in scala) has doubled down on extremely functional C# (using the NICTA XShapx library which has a lot of overlap with this one).…
      runT1ME on HN
  • lambit

    From 1 comment
    • Feel free to pilfer some ideas from my own take on a similar lib for C#. https://github.com/danstone/lambit - includes some basic pattern matching support for example. This sort…
      dstone16321 on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/8631158)