Skip to content
By using Twitter’s services you agree to our Cookies Use. We and our partners operate globally and use cookies, including for analytics, personalisation, and ads.
  • Home Home Home, current page.
  • About

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @
  • Language: English
    • Bahasa Indonesia
    • Bahasa Melayu
    • Català
    • Čeština
    • Dansk
    • Deutsch
    • English UK
    • Español
    • Filipino
    • Français
    • Hrvatski
    • Italiano
    • Magyar
    • Nederlands
    • Norsk
    • Polski
    • Português
    • Română
    • Slovenčina
    • Suomi
    • Svenska
    • Tiếng Việt
    • Türkçe
    • Ελληνικά
    • Български език
    • Русский
    • Српски
    • Українська мова
    • עִבְרִית
    • العربية
    • فارسی
    • मराठी
    • हिन्दी
    • বাংলা
    • ગુજરાતી
    • தமிழ்
    • ಕನ್ನಡ
    • ภาษาไทย
    • 한국어
    • 日本語
    • 简体中文
    • 繁體中文
  • Have an account? Log in
    Have an account?
    · Forgot password?

    New to Twitter?
    Sign up
wycats's profile
Yehuda Katz 🥨
Yehuda Katz 🥨
Yehuda Katz  🥨
Verified account
@wycats

Tweets

Yehuda Katz  🥨Verified account

@wycats

Tilde Co-Founder, OSS enthusiast and world traveler.

Portland, OR
yehudakatz.com
Joined August 2007

Tweets

  • © 2018 Twitter
  • About
  • Help Center
  • Terms
  • Privacy policy
  • Cookies
  • Ads info
Dismiss
Previous
Next

Go to a person's profile

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @

Promote this Tweet

Block

  • Tweet with a location

    You can add location information to your Tweets, such as your city or precise location, from the web and via third-party applications. You always have the option to delete your Tweet location history. Learn more

    Your lists

    Create a new list


    Under 100 characters, optional

    Privacy

    Copy link to Tweet

    Embed this Tweet

    Embed this Video

    Add this Tweet to your website by copying the code below. Learn more

    Add this video to your website by copying the code below. Learn more

    Hmm, there was a problem reaching the server.

    By embedding Twitter content in your website or app, you are agreeing to the Twitter Developer Agreement and Developer Policy.

    Preview

    Why you're seeing this ad

    Log in to Twitter

    · Forgot password?
    Don't have an account? Sign up »

    Sign up for Twitter

    Not on Twitter? Sign up, tune into the things you care about, and get updates as they happen.

    Sign up
    Have an account? Log in »

    Two-way (sending and receiving) short codes:

    Country Code For customers of
    United States 40404 (any)
    Canada 21212 (any)
    United Kingdom 86444 Vodafone, Orange, 3, O2
    Brazil 40404 Nextel, TIM
    Haiti 40404 Digicel, Voila
    Ireland 51210 Vodafone, O2
    India 53000 Bharti Airtel, Videocon, Reliance
    Indonesia 89887 AXIS, 3, Telkomsel, Indosat, XL Axiata
    Italy 4880804 Wind
    3424486444 Vodafone
    » See SMS short codes for other countries

    Confirmation

     

    Welcome home!

    This timeline is where you’ll spend most of your time, getting instant updates about what matters to you.

    Tweets not working for you?

    Hover over the profile pic and click the Following button to unfollow any account.

    Say a lot with a little

    When you see a Tweet you love, tap the heart — it lets the person who wrote it know you shared the love.

    Spread the word

    The fastest way to share someone else’s Tweet with your followers is with a Retweet. Tap the icon to send it instantly.

    Join the conversation

    Add your thoughts about any Tweet with a Reply. Find a topic you’re passionate about, and jump right in.

    Learn the latest

    Get instant insight into what people are talking about now.

    Get more of what you love

    Follow more accounts to get instant updates about topics you care about.

    Find what's happening

    See the latest conversations about any topic instantly.

    Never miss a Moment

    Catch up instantly on the best stories happening as they unfold.

    1. Yehuda Katz  🥨‏Verified account @wycats 11 Oct 2017

      1: You know how people think the Ruby stdlib convention of `!` for mutation conflicts with the Rails convention of `!` for exceptions?

      4 replies 9 retweets 21 likes
      Show this thread
    2. Yehuda Katz  🥨‏Verified account @wycats 11 Oct 2017

      2: Get ready to have your mind blown.

      2 replies 1 retweet 12 likes
      Show this thread
      Yehuda Katz  🥨‏Verified account @wycats 11 Oct 2017

      3/3: Both mutation and exceptions are effectful operations. `!` in Ruby conventionally means "effectful". Grand Unified Theory.

      12:56 PM - 11 Oct 2017
      • 8 Retweets
      • 65 Likes
      • (identity [:pankaj :λ]) Wouter Willaert Artur Honzawa Paul Prestidge Artemiy I, Frame Toby 'OoOoOh blimey ghosts' Pinder std::mem::transmute_copy(steve, lol) Qweety's tweeties @ tfcon 💪
      8 replies 8 retweets 65 likes
        1. New conversation
        2. Senior Oops Engineer‏ @ReinH 11 Oct 2017
          Replying to @wycats

          4/3: something something something monads.

          2 replies 0 retweets 8 likes
        3. Yehuda Katz  🥨‏Verified account @wycats 11 Oct 2017
          Replying to @ReinH

          I was going to say "and in Haskell both are monads" but didn't think it would make people like my argument better.

          2 replies 0 retweets 5 likes
        4. Senior Oops Engineer‏ @ReinH 11 Oct 2017
          Replying to @wycats

          I wish that either we had a more approachable way to talk about them or that math phobia wasn't such a thing.

          2 replies 0 retweets 2 likes
        5. Yehuda Katz  🥨‏Verified account @wycats 11 Oct 2017
          Replying to @ReinH

          "thing that collects side effects" is only confusing because people really really want it to be confusing.

          1 reply 0 retweets 6 likes
        6. Yehuda Katz  🥨‏Verified account @wycats 11 Oct 2017
          Replying to @wycats @ReinH

          They think they don't want it to be hard and then write shit like this: https://wiki.haskell.org/All_About_Monads#Why_should_I_make_the_effort_to_understand_monads.3F … Which betrays their mind.

          2 replies 0 retweets 3 likes
        7. Senior Oops Engineer‏ @ReinH 11 Oct 2017
          Replying to @wycats

          The state of monad education in Haskell is... extremely not great. We still haven't been able to improve much on http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf …

          1 reply 0 retweets 4 likes
        8. Senior Oops Engineer‏ @ReinH 11 Oct 2017
          Replying to @ReinH @wycats

          Then again, that original paper by Wadler is very approachable for a CS paper about abstract nonsense.

          1 reply 0 retweets 2 likes
        9. Yehuda Katz  🥨‏Verified account @wycats 12 Oct 2017
          Replying to @ReinH

          Part of the issue is that the abstract description doesn't really match the implementation of common monads like state.

          2 replies 0 retweets 0 likes
        10. 3 more replies
        1. New conversation
        2. Jonas Nicklas‏ @jonicklas 12 Oct 2017
          Replying to @wycats

          My personal rule is that `!` is used for methods which are called purely for their side effects, and whose return value is unimportant.

          3 replies 0 retweets 3 likes
        3. Yehuda Katz  🥨‏Verified account @wycats 12 Oct 2017
          Replying to @jonicklas

          Yeah I think that's about right.

          0 replies 0 retweets 1 like
        4. End of conversation
        1. New conversation
        2. Michael Bleigh‏ @mbleigh 11 Oct 2017
          Replying to @wycats

          I always thought of "!" as meaning "dangerous", then realized that "dangerous" is a synonym of "has side effects".

          2 replies 0 retweets 12 likes
        3. Yehuda Katz  🥨‏Verified account @wycats 11 Oct 2017
          Replying to @mbleigh

          Yep!

          2 replies 0 retweets 0 likes
        4. space octopus‏ @OhMeadhbh 11 Oct 2017
          Replying to @wycats @mbleigh

          i always assumed it meant "factorial" as in "this leads to a factorial increase in the complexity of your solution."

          0 replies 0 retweets 1 like
        5. End of conversation
        1. Brendan Zabarauskas‏ @brendanzab 11 Oct 2017
          Replying to @wycats

          …but then by that logic shouldn't `.save` and `.save!` both have `!`s? They are both effectful.

          0 replies 0 retweets 1 like
          Thanks. Twitter will use this to make your timeline better. Undo
          Undo
        1. New conversation
        2. 𝕹𝖎𝖈𝖐 𝕼𝖚𝖆𝖗𝖆𝖓𝖙𝖔  🧛🏼‍♂️‏ @qrush 12 Oct 2017
          Replying to @wycats

          UNIFY‼pic.twitter.com/aWSDRyxkJp

          1 reply 0 retweets 0 likes
        3. Jonas Nicklas‏ @jonicklas 12 Oct 2017
          Replying to @qrush @wycats

          I once wrote a method which had an interrobang in actual production code. Someone is going to hunt me down for that one some day.

          1 reply 0 retweets 1 like
        4. 𝕹𝖎𝖈𝖐 𝕼𝖚𝖆𝖗𝖆𝖓𝖙𝖔  🧛🏼‍♂️‏ @qrush 12 Oct 2017
          Replying to @jonicklas @wycats

          pic.twitter.com/iAUFWCyH0j

          0 replies 0 retweets 0 likes
        5. End of conversation
        1. Roger Steve Ruiz  ☁️‏ @rogeruiz 11 Oct 2017
          Replying to @wycats

          Mind blown like fresh snow yabba dabba doo.pic.twitter.com/DwMcF5T6L3

          0 replies 0 retweets 0 likes
          Thanks. Twitter will use this to make your timeline better. Undo
          Undo
        1. Jef Mathiot‏ @TouitTouit 11 Oct 2017
          Replying to @wycats

          Definitely :)

          0 replies 0 retweets 0 likes
          Thanks. Twitter will use this to make your timeline better. Undo
          Undo
        1. New conversation
        2. Drew Vogel‏ @drewpvogel 11 Oct 2017
          Replying to @wycats

          That's a stretch because the only thing an exception changes is the call stack. With that definition pure functions are also effect-ful. No?

          1 reply 0 retweets 0 likes
        3. Drew Vogel‏ @drewpvogel 11 Oct 2017
          Replying to @drewpvogel @wycats

          (for the record I don't mind the seemingly dual use of the exclamation mark in ruby)

          0 replies 0 retweets 0 likes
        4. End of conversation

      Loading seems to be taking a while.

      Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.

        Promoted Tweet

        false

        • © 2018 Twitter
        • About
        • Help Center
        • Terms
        • Privacy policy
        • Cookies
        • Ads info