阅读 143

函数式编程compose 与Box

函数式编程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)

两种方式所用的到方法不一样,可以体会一下函数式编程


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐