= 创作分享 =
你问我答
怎么做到写出一个平方的运算符
Death__123

怎么做到写出一个平方的运算符

Death__123 于 2021-8-28 14:00 ( 2年前 ) [复制链接] [显示全部楼层] [打印]
1985 8
本贴模组名片
动态联合/集成动力 (Integrated Dynamics)
[ban:title_menu][h1=简介]Integrated Dynamics提供了一本游戏中的指南“论集成动力”,包含了一些教程。所有玩家在第一次加入世界时就会获取“论集成动力”, 但它也可以通过一本书和两块门瑞欧结晶碎块来合成。集成动力是一个能为你实现构建复杂自动化和系统集成网络的模组。它是红石信..
起因是我想写的运算符需要将一个输入参数进行两种运算然后组合一下,但是我想了一下并没有想到应该怎么做
然后我思考了一下,将问题简化了一下,发现并想不出办法,所以就来求救了
现在的目标是制作一个计算输入的平方的运算符
我知道可以做成两个输入参数的运算符,也可以用列表绕一个大弯做到,现在想问的就是有没有简洁优雅一点的方法办到
该帖共收到 18 条回复!
Death__123
@Nishiki @muse、
大佬救一下
发表于 2021-8-28 14:02:28 | 显示全部楼层

回复 | 举报

Death__123
好吧,今天做别的东西的时候尝试了一下二元管道,这个二元管道快要把我搞疯了
测试得出的结论是二元管道的第一第二输入都是单输入的运算符的话可以正常使用
使用apply将一个输入怼进去,会将输入应用到这两个单输入运算符中,然后输出再作为第三个运算符的输入得出结果
但是如果第一第二个有二输入运算符,就无法使用了.....不是很懂他的逻辑了现在
发表于 2021-8-29 12:29:52 | 显示全部楼层

回复 | 举报

Death__123
我的意思是如何把这个操作塞进一个运算符里面
毕竟不是真的要做平方这一操作,只是那这个举例
今天在测试的时候发现可以用二元管道做到
还发现管道只接受输入参数只有一个的运算符
所以旧的问题解决了但是新的问题又来了
如何用最多两输入参数的运算符做出三输入参数的运算符
发表于 2021-8-29 18:24:37 | 显示全部楼层

回复 | 举报

Death__123
QQ酱73085 发表于 2021-8-29 22:25
结尾那个,如何用两输入做三输入,需要统合一下。
比如所谓的三输入是 (A+B) * C 那就先传A+B的结果和C
...

就是a+b的结果传不进去
发表于 2021-8-30 14:35:15 | 显示全部楼层

回复 | 举报

Death__123
管道传不了这种需要两个输入的运算符
发表于 2021-8-30 14:35:44 | 显示全部楼层

回复 | 举报

Death__123

就是我的目标是做一个这样的有三个输入的运算符,可以用于apply3的运算符
本来第一个加运算符和第二个加运算符应该使用管道进行连接,但是实际测试发现并不能这样做
管道不接受这种两个输入的运算符
或者说这样子用管道的话,使用apply会将第一个参数应用到第一个加运算符,第二个参数应用到第二个加运算符的第二个输入参数,结果就是第一个运算符的结果是一个运算符,然后运算符类型传入接受int类型的运算符就会报错
发表于 2021-8-31 20:38:12 | 显示全部楼层

回复 | 举报

Death__123
所以说我的目标是做个运算符出来,但你这是用给定的输入算输出....
发表于 2021-9-1 12:59:24 | 显示全部楼层

回复 | 举报

Death__123
竟然有别人也来回帖了,那就再解释一下吧
用编程语言来举例可能更好理解一些
比方说, 加 运算符是这样的:
function 加(a,b){ return a+b;}
那么我的目标是做一个这样的运算符:
function 平方(a){return a * a;}
但是实际上id并接触不到这样的操作,只有运算符,所以实际上目标是这样
function 平方(a){return 乘(a,a);}
就是只传入一个参数得到结果

而根据我的测试,管道似乎是这样的:
function 管道(a,b){
  return function(x){
    return b(a(x));
  };
}
输入两个运算符(函数)返回一个运算符(函数)

二元管道是这样的:
function 二元管道(a,b,c){
  return function(x){
     return c(a(x), b(x));
  };
}

也就是说管道只能接受一个输入参数的运算符



发表于 2021-9-28 22:25:25 | 显示全部楼层

回复 | 举报

百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表