From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-2.6 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, FORGED_GMAIL_RCVD,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id 49A421F4B5 for ; Tue, 12 Nov 2019 19:09:38 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 743AE120956; Wed, 13 Nov 2019 04:09:27 +0900 (JST) Received: from o1678948x4.outbound-mail.sendgrid.net (o1678948x4.outbound-mail.sendgrid.net [167.89.48.4]) by neon.ruby-lang.org (Postfix) with ESMTPS id 9FDA912093B for ; Wed, 13 Nov 2019 04:09:25 +0900 (JST) Received: by filter0091p3las1.sendgrid.net with SMTP id filter0091p3las1-24933-5DCB0367-4C 2019-11-12 19:09:27.865391223 +0000 UTC m=+87826.563882037 Received: from herokuapp.com (unknown [54.162.83.60]) by ismtpd0015p1iad1.sendgrid.net (SG) with ESMTP id QAHP6nNKQ72QClsil75lXA for ; Tue, 12 Nov 2019 19:09:27.862 +0000 (UTC) Date: Tue, 12 Nov 2019 19:09:28 +0000 (UTC) From: non.dmitriy@gmail.com Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 71450 X-Redmine-Project: ruby-trunk X-Redmine-Issue-Id: 16341 X-Redmine-Issue-Author: Nondv X-Redmine-Sender: Nondv X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-SG-EID: =?us-ascii?Q?EtUBU5pNPGGF695WqpG6VxCA85Kr9QQx+VRnpZEtiFevfRGuzY1Ru7vKO4NhwW?= =?us-ascii?Q?p0JQvhsOf8kKIII9=2F0SkRANlyc7VzdX2IK0gUu8?= =?us-ascii?Q?bkKlK8QWTf4c+6yu5mefMk9j1LnCZ0o8tVkBfnX?= =?us-ascii?Q?iFHg1tddkpumjCfdIxRF7laEmhLF5aRD1PaGe=2Fs?= =?us-ascii?Q?kZCOSi7wbY=2Fd7g6LQ9F+3UCEGPKNYZiBQlA=3D=3D?= To: ruby-core@ruby-lang.org X-ML-Name: ruby-core X-Mail-Count: 95821 Subject: [ruby-core:95821] [Ruby master Feature#16341] Proposal: Set#to_proc X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" Issue #16341 has been updated by Nondv (Dmitry Non). The main problem is that implicit conversion can be confusing, especially, if it's not obvious what the resulting proc is going to do. However, I think that hashes are being used *mainly* for making key-value pairs and accessing them and sets are being used for checking if something is included. So usage of `:[]` and `:include?` seems appropriate and relatively straight-forward to me. Of course, depending on the context. With map/reduce/count it does make sense indeed but maybe there're cases when it can make things hard to understand ---------------------------------------- Feature #16341: Proposal: Set#to_proc https://bugs.ruby-lang.org/issues/16341#change-82648 * Author: Nondv (Dmitry Non) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- ``` ruby class Set def to_proc -> (x) { include?(x) } # or method(:include?).to_proc end end ``` Usage: ```ruby require 'set' banned_numbers = Set[0, 5, 7, 9] (1..10).reject(&banned_numbers) # ===> [1, 2, 3, 4, 6, 8, 10] ``` -- https://bugs.ruby-lang.org/