`
lobin
  • 浏览: 417850 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Regular Quasi-strings & Strong Quasi-string notation

 
阅读更多

 

> ((lambda (name age title) {my name: [name], age: [age] and title: [title]}) "adam" 22 "baba")
$43 = "my name: adam, age: 22 and title: baba"

 

> ((lambda (name age title) #{my name: [name], age: [age] and title: [title]}#) "adam" 22 "baba")
$44 = "my name: [name], age: [age] and title: [title]"

 

> ((lambda (name age title) #{my name: #[name]#, age: #[age]# and title: #[title]#}#) "adam" 22 "baba")
$45 = "my name: adam, age: 22 and title: baba"

C/C++实现类似效果:

#include <stdio.h>
#include <typeinfo.h>
#include <iostream>

using namespace std;

// Quasi-string & Strong Quasi-string
#define QUASI_STR(s)      #s

#define QUASI_STR_X2(op, s1, s2) \
  s1##op##s2

#define STRONG_QUASI_STR_X2(op, s1, s2) \
  #s1#op#s2

#define QUASI_STR2(s1, s2) \
  #s1#s2

#define STRONG_QUASI_STR2(s1, s2) \
  s1##s2

#define ADD(a, b) a + b

int main() 
{
  int i = 12;
  float j = 12.12f;
  cout << "typeid(int): " << typeid(12).name() << endl;
  //cout << "typeid(int): " << typeid(i).name() << endl;
  cout << "typeid(int): " << typeid(int).name() << endl;

  cout << "typeid(int): " << typeid(12.12f).name() << endl;
  //cout << "typeid(int): " << typeid(f).name() << endl;
  cout << "typeid(int): " << typeid(float).name() << endl;

  cout << "------------------------------------------" << endl;

  cout << ADD(i, i) << endl;

  cout << "------------------------------------------" << endl;

  cout << QUASI_STR(aaabbbccc) << endl;

  cout << QUASI_STR2(12, 12.12f) << endl;
  cout << STRONG_QUASI_STR2(12, 12.12f) << endl;

  cout << QUASI_STR2(i, 12.12f) << endl;
  //cout << STRONG_QUASI_STR2(i, 12.12f) << endl;

  int i12;
  cout << QUASI_STR2(i, 12) << endl;
  cout << STRONG_QUASI_STR2(i, 12) << endl;

  int ij;
  cout << QUASI_STR2(i, j) << endl;
  cout << STRONG_QUASI_STR2(i, j) << endl;

  return 0;
}

 

$ g++ -c cjtest.cpp -o cjtest.o
$ g++ cjtest.o -o cjtest
$ ./cjtest.exe
typeid(int): i
typeid(int): i
typeid(int): f
typeid(int): f
------------------------------------------
24
------------------------------------------
aaabbbccc
1212.12f
1212.12
i12.12f
i12
2282524
ij
1629105823

 

分享到:
评论

相关推荐

    Quasi-explicit-SVI

    Quasi-ExplicitCalibrationofGatheral&amp;#39;sSVImodel-Zeliade39、#的盖思勒尔拟显的SVI模型zeliade校准;

    单相Quasi-Z源逆变器的纹波分析

    本文研究分析了Quasi- Z 源逆变器,该拓扑阻抗网络中的两个电容承受的电压明显减小,而且该拓扑可以采用软启动方式消除系统的启动冲击,提高了系统的稳定性。 本文通过对系统阻抗网络状态进行分析,建立了Quasi- Z ...

    Monte Carlo and Quasi-Monte Carlo Sampling完整版PDF文档.rar

    《Monte Carlo and Quasi-Monte Carlo Sampling》是关于统计计算和模拟技术的重要参考资料,尤其在处理复杂问题和高维度空间中的计算时,这两种方法显得尤为关键。这本书提供了全面而深入的理论背景以及实践应用,...

    Quasi-Monte Carlo sampling to improve

    ### Quasi-Monte Carlo抽样方法提升Monte Carlo EM算法效率 #### 背景与概念 在统计学和许多其他领域中,期望最大化(EM)算法被广泛使用,但其局限性在于当E步(期望步骤)变得难以计算时。这种情况下,Monte ...

    Quasi-Newton_3__.rar_Quasi-Newton_Quasi-Newton_3__Quasi_newton_m

    在《Quasi-Newton_3__.rar》压缩包中,可能包含的资料如“www.pudn.com.txt”可能是关于拟牛顿法的详细讲解或者实例分析,而“Quasi-Newton_3__”可能是代码实现或进一步的算法讨论。通过研究这些材料,我们可以更...

    开关电感Quasi-Z源逆变器SVPWM策略研究.pdf

    "开关电感Quasi-Z源逆变器SVPWM策略研究" 本文研究了开关电感Quasi-Z源逆变器的SVPWM策略,旨在实现电源的逆变。开关电感Quasi-Z源逆变器具有无源器件个数少、电感、二极管电流低等特点,具有广泛的应用前景。 ...

    untitled3.rar_Quasi Z source_Quasi-Z-Source_z source quasi_z so

    **Quasi-Z源逆变器详解** 在电力电子领域,Quasi-Z源逆变器(Quasi-Z-Source Inverter,简称QZSI)是一种新型的电源变换器,它结合了传统的电压源逆变器(VSI)和电流源逆变器(CSI)的优点。QZSI的设计理念在于...

    2005-A Quasi-Dense Approach to Surface Reconstruction from Uncalibrated Images

    ### 2005-A Quasi-Dense Approach to Surface Reconstruction from Uncalibrated Images #### 概述 本文提出了一种从非校准图像中进行三维表面重建的准密集方法(Quasi-Dense Approach)。该方法首先计算基于新的...

    quasi-Newton-BFGS.rar_Quasi-Newton_optimization_quasi newton _re

    "quasi-Newton-BFGS.rar"可能包含了一个完整的实现,包括BFGS算法的代码示例和用于测试的二元函数。这些文件可能提供了如何初始化近似海森矩阵、如何更新H、如何计算搜索方向以及如何进行线性搜索的细节。通过对这些...

    Quasi-Monte Carlo Sampling

    ### Quasi-Monte Carlo (QMC) Sampling:理论与实践 #### 一、引言 在探讨Quasi-Monte Carlo(QMC)采样方法之前,我们先回顾一下传统的Monte Carlo(MC)方法的基本原理及其应用背景。Monte Carlo方法是一种基于...

    这款均线指标, 基于 Quasi-数字滤波器 - MetaTrader 5脚本.zip

    "这款均线指标, 基于 Quasi-数字滤波器 - MetaTrader 5脚本.zip" 文件提供了一个独特的平均线计算方法,它利用了Quasi-数字滤波器的概念,旨在提高信号的清晰度和准确性。MetaTrader 5(MT5)是一个流行的外汇、期货...

    Acceleration of quasi-Monte Carlo approximations

    本文讨论了一种加速准蒙特卡罗(Quasi-Monte Carlo, QMC)逼近的方法,并研究了该方法在数学金融领域的应用。准蒙特卡罗方法是一种数值积分技术,用于解决高维积分问题,尤其是在数学金融中模拟复杂金融工具的价格时...

    matlab 中 quasi-newton法求最小值

    在MATLAB中,Quasi-Newton法是一种常用的优化算法,用于寻找函数的最小值。这种方法在实际应用中非常广泛,特别是在解决非线性优化问题时。Quasi-Newton法是基于牛顿法的一种改进,因为它不需要计算目标函数的二阶...

    Quasi-Monte Carlo estimation in generalized linear mixed models

    ### Quasi-Monte Carlo (QMC) 估计在广义线性混合模型中的应用 #### 概述 广义线性混合模型(GLMMs)是处理纵向数据和集群数据的强大工具,它通过将随机效应纳入线性预测器中来适应来自不同来源的随机变化和相关性...

    论文:Stanford Doggo: An Open-Source, Quasi-Direct-Drive Quadruped

    论文:Stanford Doggo: An Open-Source, Quasi-Direct-Drive Quadruped 。这篇论文展示了 Stanford Doggo,它是一种准直接驱动(quasi-direct-drive)的四足机器人,具有很强的动态运动能力。该机器人能媲美或超过...

    Monte Carlo and quasi-Monte Carlo sampling methods

    ### Monte Carlo与准Monte Carlo抽样方法在随机数学规划中的应用 #### 核心知识点概览 在本文中,我们将深入探讨Monte Carlo(MC)与准Monte Carlo(QMC)抽样方法在解决一类特殊的随机数学规划问题中的应用——...

    Single-Phase Z-Source/ Quasi-Z-Source Inverters and Converters

    单相Z源/准Z源逆变器和变换器技术是电力电子领域中的一个重要分支,它在处理电源解耦问题方面有独特的应用。本文将详细介绍单相Z源/准Z源逆变器和变换器的双线频率功率解耦方法,并对这些方法的实现方式和性能进行...

    Quasi-Newton-method.rar_Quasi-Newton_newton_quasi_quasi newton _

    拟牛顿法是一种在数值优化领域广泛使用的高效算法,尤其适用于解决非线性优化问题。在最优化理论中,寻找函数的最小值或最大值是许多科学和工程问题的核心。牛顿法是一种直接利用目标函数的导数信息来迭代求解的方法...

    quasi_z_source_QuasiZsource_Quasi-Zsource_quasi_

    Quasi Z源转换器,又称为Quasi-Z源逆变器,是电力电子技术领域中的一种新型电压源逆变器(VSI)设计。它的主要特点是结合了电压源逆变器和电流源逆变器的优点,同时在一定程度上克服了它们的缺点。Quasi-Z源逆变器的...

Global site tag (gtag.js) - Google Analytics