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

查看数: 1981 | 评论数: 18 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-8-28 14:00

正文摘要:

起因是我想写的运算符需要将一个输入参数进行两种运算然后组合一下,但是我想了一下并没有想到应该怎么做 然后我思考了一下,将问题简化了一下,发现并想不出办法,所以就来求救了 现在的目标是制作一个计算输入的平方的 ...

回复

改了网名的人: 发表于 2021-10-20 13:11:36
改了网名的人: 发表于 2021-10-20 13:10
这可能涉及到了id内运算符参数不可复制的特性,
对了,您之前说的“用列表绕一个弯”是怎么做到的 ...

如果能做到输入一个列表,输出前两项的积,那就是可解的。
改了网名的人: 发表于 2021-10-20 13:10:10
Death__123 发表于 2021-9-28 22:25
竟然有别人也来回帖了,那就再解释一下吧
用编程语言来举例可能更好理解一些
比方说, 加 运算符是这样的:

这可能涉及到了id内运算符参数不可复制的特性,
对了,您之前说的“用列表绕一个弯”是怎么做到的
Death__123 发表于 2021-9-28 22:25:25
竟然有别人也来回帖了,那就再解释一下吧
用编程语言来举例可能更好理解一些
比方说, 加 运算符是这样的:
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-14 14:04:11
改了网名的人: 发表于 2021-9-14 14:00
把输入数据调用两次行不行,如果可以……
我是说相当于把同一个变量输入两次。 ...

不好意思,发错帖了
改了网名的人: 发表于 2021-9-14 14:00:40
把输入数据调用两次行不行,如果可以……
我是说相当于把同一个变量输入两次。
QQ酱73085 发表于 2021-9-1 13:18:17
Death__123 发表于 2021-9-1 12:59
所以说我的目标是做个运算符出来,但你这是用给定的输入算输出....

已经结束了啊,你在整数框里填入实参就好。
整数框就是运算符参数的输入口,你接下来是把其他变量卡的值赋值给整数框代表的变量卡
Death__123 发表于 2021-9-1 12:59:24
所以说我的目标是做个运算符出来,但你这是用给定的输入算输出....
QQ酱73085 发表于 2021-8-31 22:37:09
本帖最后由 QQ酱73085 于 2021-8-31 22:45 编辑
Death__123 发表于 2021-8-31 20:38
就是我的目标是做一个这样的有三个输入的运算符,可以用于apply3的运算符
本来第一个加运算符和第二个加运 ...

试试?
最后apply给出来的才是结果,你画的那个图没怎么看懂。图里的加运算就是直接给定的运算,不是运算符。
管道只接受运算符的运算结果,应该是像图中这么做

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

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