我有一个梯形运算符\xc3\xa2,它用它自己的伴随满足这个换向器关系:
\n\n\n\n\n[\xc3\xa2,\xc3\xa2\xe2\x81\xba] = 1
\n
在 sympy 中我写了这段代码:
\n\nimport sympy\nfrom sympy import *\nfrom sympy.physics.quantum import *\n\na = Operator(\'a\')\nad = Dagger(a)\n\nccr = Eq( Commutator(a, ad), 1 )\nRun Code Online (Sandbox Code Playgroud)\n\n现在我需要扩展和简化这样的表达式:
\n\n\n\n\n(\xc3\xa2\xe2\x81\xba + \xc3\xa2)\xe2\x81\xb4
\n
如果我只使用((ad + a)**4).expand(), sympy 不会使用换向器关系。使用规范交换子关系时如何简化表达式?
我想使用 TypeScript 的编译器 API来试验TypeScript 代码中的运算符重载。具体来说,我想找到 的所有实例x + y并将它们转换为op_add(x, y). 但是,我希望语言服务(例如 VS Code 中的 IntelliSense)了解转换并显示正确的类型。
例如在这段代码中:
interface Vector2 { x: number, y: number }
declare function op_add(x: Vector2, y: Vector2): Vector2
declare let a: Vector2, b: Vector2
let c = a + b
Run Code Online (Sandbox Code Playgroud)
我希望当我将鼠标悬停在上面时c,它会显示Vector2.
为了实现这一目标,我必须:
typescript– 以同样的方式ttypescript。typescripttypescript我开始通过创建一个称为短脚本compile.ts使用该编译器API解析一个名为sample.ts成AST。然后它直接修改 …
我使用以下方法创建了一个 TypeScript React 应用程序:
\n\nyarn create react-app my-app --template typescript\nRun Code Online (Sandbox Code Playgroud)\n\n这样,我的项目就用Babel编译,然后由webpack捆绑。现在我想使用 TypeScript命名空间,默认情况下 Babel 不支持它们,但可以启用它们。我\xc2\xa0安装了所有必需的软件包:
\n\n\n\n在package.json我react-scripts start改为react-app-rewired start.
最后,我创建了一个config-overrides.js文件:
const {\n override,\n addExternalBabelPlugin\n } = require("customize-cra");\n\nmodule.exports = override(\n addExternalBabelPlugin([\n "@babel/plugin-transform-typescript",\n { allowNamespaces: true }\n ])\n);\nRun Code Online (Sandbox Code Playgroud)\n\n但是,编译仍然会抛出语法错误,就好像没有启用插件一样:
\n\n\n\n\n语法错误:/home/m93a/my-app/script.ts:命名空间未标记为仅类型声明。Babel 仅实验性地支持非声明性命名空间。要启用和查看警告,请参阅:https://babeljs.io/docs/en/babel-plugin-transform-typescript
\n
如何正确设置我的项目,以便它甚至可以编译非声明性命名空间?
\n\n编辑:我的项目不起作用的原因实际上与我的想法有很大不同。检查我自己的答案以获取更多详细信息。
\n我正在尝试用C++创建一个动态数组类,但是我得到了一些指针错误,例如.在第23行,我需要将pointer值(引用号)更改为值this.first,也是指针 - pointer并且this.first应该指向相同的值.
#include <string>
#include <iostream>
using namespace std;
class ArrayMember {
public:
ArrayMember* next;
ArrayMember* prev;
int index;
int value;
ArrayMember(){}
};
class Array {
private:
ArrayMember* first;
ArrayMember* last;
int length;
public:
int get(int index){
ArrayMember* point;
if(index<length/2){
point = this.first; //error: request for member ‘first’ in ‘this’, which is of non-class type ‘Array* const’
while(*point.index != index) { // error: request for member ‘index’ in ‘point’, which is of …Run Code Online (Sandbox Code Playgroud) 我有两个类:Vector和Particle ......
class Vector {
public:
float x,y;
};
class Particle {
public:
Vector* coord;
Particle(Vector* coord)
{
this->coord = coord;
};
};
Run Code Online (Sandbox Code Playgroud)
...和一个像这样声明的数组:
Particle* particles [PARTICLES];
Run Code Online (Sandbox Code Playgroud)
这是我的主要内容:
int main(int argc, char** argv)
{
//Write
int i = 0;
do{
particles[i] = new Particle(new Vector());
}while(
++i<PARTICLES
);
i = 0;
//Read
int j = 0;
float s = .0f,
a = .0f;
Vector vi = *(particles[0]->coord),
vj = *(particles[0]->coord);
do{
do{
if(i!=j){
vi = *(particles[i]->coord);
vj = *(particles[j]->coord); //FIXME …Run Code Online (Sandbox Code Playgroud) 我想知道是否可以在 TypeScript 中将联合类型“拆分”为特定的子类型。这是我尝试使用的代码,很明显我试图从代码段中实现:
type SplitType<T> =
T extends (infer A)|(infer B)
? Something<A, B>
: T;
Run Code Online (Sandbox Code Playgroud)
在这个例子中Something<A, B>可以是[A, B],或者是一个完全不同的类型。这意味着SplitType<string>只会输出 a string,但SplitType<number|string>意味着[number, string].
在 TypeScript 中可能有这样的事情吗?如果没有,将来是否有允许这样做的功能(例如可变参数类型)?
我注意到 TypeScript 有一些奇怪的地方。我有一个类型联合,其中包含一些数组类型(string[], number[])和一些非数组类型(string, number)。如果我使用类型推断,一切都会按预期进行:
type bar = string | number | string[] | number[];
declare foo: bar;
if (Array.isArray(foo))
{
foo // string[] | number[]
}
else
{
foo // string | number
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我想将类型直接限制为数组类型并使用类型交集,我会得到一些意想不到的结果:
declare foo: bar & any[];
// expected type: string[] | number[]
foo // (string & any[]) | (number & any[]) | (string[] & any[]) | (number[] & any[])
Run Code Online (Sandbox Code Playgroud)
这是为什么?
不应该string & any[]评估 tonever和string[] …
什么是正确的mime类型的深奥语言?
我到处搜索,我甚至试图问查克诺里斯,但我没有在任何地方找到答案.
我已经为Brainfuck尝试了这些:
application/brainfuck
application/x-brainfuck
application/x+brainfuck
x-esoteric/x-brainfuck
chuck-norris-choice/brainfuck
x-you-lost-the-game/x-fuck-your-brain
42/++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
Run Code Online (Sandbox Code Playgroud)
但它们似乎都没有奏效.
typescript ×4
c++ ×2
arrays ×1
babeljs ×1
brainfuck ×1
generics ×1
mime-types ×1
object ×1
physics ×1
python ×1
sympy ×1
union-types ×1
webpack ×1