Return-Path: Delivered-To: sakai@tom.sfc.keio.ac.jp Received: (qmail 21229 invoked from network); 18 Apr 2003 00:02:13 -0000 Received: from quickml.com (133.138.2.9) by tenryu.tom.sfc.keio.ac.jp with SMTP; 18 Apr 2003 00:02:13 -0000 Received: from kanakan.csl.sony.co.jp (quickml.com [133.138.2.9]) by quickml.com (Postfix) with ESMTP id 2D72D455E; Fri, 18 Apr 2003 09:01:42 +0900 (JST) Received: from quickml.com (quickml.com [133.138.2.9]) by localhost (QuickML) with ESMTP; Fri, 18 Apr 2003 09:01:40 +0900 Received: from edge.co.jp (mail.edge.co.jp [203.131.192.197]) by quickml.com (Postfix) with SMTP id 7BCE34504 for ; Fri, 18 Apr 2003 09:01:36 +0900 (JST) Received: (qmail 32995 invoked by uid 0); 18 Apr 2003 09:01:33 +0900 Received: from unknown (HELO hayakawa) (10.0.0.244) by 0 with SMTP; 18 Apr 2003 09:01:33 +0900 Date: Fri, 18 Apr 2003 09:01:30 +0900 From: Shinya Hayakawa To: haskell-jp@quickml.com Message-Id: <20030418083540.E193.TETRYL@tokyoprogrammer.com> MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-2022-JP" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.00.11 Subject: [haskell-jp:138] split Reply-To: haskell-jp@quickml.com X-Mail-Count: 138 Precedence: bulk X-ML-Address: haskell-jp@quickml.com X-ML-Name: haskell-jp X-ML-Info: http://QuickML.COM/ X-QuickML: true こんにちは。早川です。 文字列をある文字で区切って pair を返す以下のような関数を 考えてみました。 split' :: Eq a => a -> [a] -> ([a], [a]) split' c xs = let (ys, zs) = break (c ==) xs in (ys, tail zs) -- split' '@' "foo@bar.com" = ("foo","bar.com") 既にあるかと思って探したのですが見つかりませんでした。 標準ではこのような関数は存在しないでしょうか。 あるいは、より良い方法がありましたらお教え願います。 下のような class はあるみたいです。 class Splittable t where split :: t -> (t, t) -- SH Livin' on the EDGE Co., Ltd. -- ML: haskell-jp@quickml.com 使い方: http://QuickML.com/