C#で
(x:xs) --Haskell
的なことってできないでしょうか?
手動で分離してタプルで返す拡張メソッド書けばいいかも知れませんが、
上記のようにシャッ!て分離できないかと・・・
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
シャッ!とは無理でしょうね。
ゴニョッぐらいで勘弁してください。
C#
1var numbers = new[] { 1, 2, 3, 4 }; 2 3Func<int[], (int cdr, int[] car)> gonyo = a => (a.FirstOrDefault(), a.Skip(1).ToArray()); 4 5var res1 = gonyo(numbers); 6var res2 = gonyo(res1.car);
投稿2017/07/06 09:59
総合スコア4150
0
リスト分離というか、car/cdr ですね。
Linq を使えば出来るんじゃないでしょうか
csharp
1using System; 2using System.Linq; 3 4class Program 5{ 6 static void Main(string[] args) 7 { 8 var arr = new int[3] {1,2,3}; 9 10 // 最初と 11 var first = arr.First(); 12 13 // 残り 14 var rest = arr.Skip(1).ToArray(); 15 16 Console.WriteLine("a: " + first); 17 foreach (var v in rest) { 18 Console.WriteLine("b: " + v); 19 } 20 } 21} 22
投稿2017/07/06 06:52
編集2017/07/06 07:18総合スコア5030
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/07 00:27