質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

1314閲覧

C#でHaskellとかにあるリスト分離

nyahonyaho

総合スコア83

Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2017/07/06 06:31

C#で

(x:xs) --Haskell

的なことってできないでしょうか?

手動で分離してタプルで返す拡張メソッド書けばいいかも知れませんが、
上記のようにシャッ!て分離できないかと・・・

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

hihijiji

総合スコア4150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyahonyaho

2017/07/07 00:27

私が考えたグネグネェより優れたロジックだと思います。
guest

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
mattn

総合スコア5030

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mattn

2017/07/06 07:01

ちなみに1行で書けないのか、という質問は無しでお願いします。(型が違うのですから当然ですね)
mattn

2017/07/07 00:36

ちなみに dynamic 使えばいけますよ。 var arr = new[] { 1, 2, 3, 4 }; dynamic first = arr.First(), rest = arr.Skip(1).ToArray();
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問