zoukankan      html  css  js  c++  java
  • 函数式编程compose 与Box

    const compose = (...fns) =>fns.reduce((a, b) =>(...x)=> b(a(x)));
            const trim1 = str => {
                console.log(str)
                let s = str.trim()
                return s;
            }
            const toNumber = str =>{
                console.log('3333')
                return parseInt(str)
            } 
            const nextNumber = number =>{
                console.log('2222')
                return number + 1;
            } 
            const createStr = number =>{
                console.log('1111')
                return String.fromCharCode(number);
            } 
            const nextChartFromNumberString = compose(toNumber,nextNumber,createStr);
            const result = nextChartFromNumberString(' 64');
            console.log(result)
     
     
    const Box = x => ({
                super: f => Box(f(x)),
                inspect: () => `${x}`
            })
            const nextChartFromNumberString = str => Box(str)
            .super(s => s.trim()).super(r => parseInt(r)).super(i => i + 1).super(i => String.fromCharCode(i))
            const result = nextChartFromNumberString(' 64').inspect()
            console.log(result)
    两种方式所用的到方法不一样,可以体会一下函数式编程
  • 相关阅读:
    bzoj3884: 上帝与集合的正确用法(数论)
    洛谷10月月赛R2·浴谷八连测R3题解
    bzoj5055: 膜法师(BIT)
    bzoj2213: [Poi2011]Difference(思维题)
    bzoj1016: [JSOI2008]最小生成树计数(kruskal+dfs)
    一模 (2) day2
    一模 (2) day1
    Prime Palindromes
    常州培训 day5 解题报告
    一模 (1) day2
  • 原文地址:https://www.cnblogs.com/MDGE/p/14706176.html
Copyright © 2011-2022 走看看