第135回 カリー化について
公開日:2015-02-05 更新日:2019-05-11
1. 概要
独り言によるプログラミング講座、「第135回 カリー化について」です。
カリー化の方法について説明しています。
カリー化の方法について説明しています。
2. 動画
3. 動画中に書いたソース
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//★独り言によるプログラミング講座
//■カリー化について
// add(1, 2) ---> add(1)(2)
/*
Func<int, int> add = _ => _ + 1;
int result = add(2);
MessageBox.Show(result.ToString());
*/
/*
Func<int, Func<int, int>> add = p1 =>
(p2 => p1 + p2);
int result = add(5)(10);
MessageBox.Show(result.ToString());
*/
Func<int, Func<int, int>> add = p1 => p2 => p1 + p2;
int[] array = {1,2,3,4,5};
/*
foreach(var item in array.Select(_ => _ + 1)) {
MessageBox.Show(item.ToString());
}*/
/*
var list1 = array.Select(_ => _ + 1);
var list2 = array.Select(add(1));
foreach(var item in list2) {
MessageBox.Show(item.ToString());
}
*/
var list = array.add(100);
foreach(var item in list) {
MessageBox.Show(item.ToString());
}
this.Dispose();
}
}
public static class TestTest {
public static IEnumerable add(this int[] array, int value) {
return array.Select(_ => _ + value);
}
}
}