标签: inline

内联比递归定义如何有效?

我的《编程范例》教科书,《编程语言基础》(第3版)第1章有一个练习:

练习1.12

通过用subst-in-s-exp的定义代替它的定义并简化生成的过程,消除对subst-in-s-exp的一次调用。结果将是不需要subst-in-s-exp的subst版本。这项技术称为内联,用于优化编译器。

原始代码将具有两个功能:subst并且subst-in-sexp基本上将输入符号中所有出现的旧符号替换为新符号。

(define subst
  (lambda (new old slist)
    (if (null? slist) '()
        (cons
         (subst-in-s-exp new old (car slist))
         (subst new old (cdr slist))))))

(define subst-in-s-exp
  (lambda (new old sexp)
    (if (symbol? sexp)
        (if (eqv? sexp old) new sexp)
        (subst new old sexp))))
Run Code Online (Sandbox Code Playgroud)

这个问题的答案是消除subst-in-sexp,这就是

(define subst
  (lambda (slist old new)
    (cond
      [ (null? slist) '()]
      [ (eqv? (car slist) old) (cons new (subst (cdr slist) old new))]
      [ else (cons (car …
Run Code Online (Sandbox Code Playgroud)

language-agnostic paradigms scheme inline

0
推荐指数
1
解决办法
120
查看次数

Python有内联语句吗?

python有类似于inlineC的东西吗?

如果没有,我怎样才能加快功能的执行?

python inline

0
推荐指数
1
解决办法
226
查看次数

不可内联的功能

我必须显示无法在c ++中内联的函数.

要检查这个,我有标志-Winline设置.

使用递归函数,我能够生成一个无法内联的函数.

但我尝试使用继承和"虚拟"关键字.但我不能让编译器抱怨内联不可能出现问题.

我知道这个话题已经涵盖了很多.但我没有找到一个有效的例子.我的编译器"聪明":-)

我试过这个:

class virt1
{
public:
    virt1(){};
    inline virtual int virtFunc(int a){ return a*a; };
    virtual ~virt1(){};
};

class virt2 : public virt1
{
public:
    virt2(){};
    inline virtual int virtFunc(int a){ return a+a;};
    virtual ~virt2(){};
};

void testVirtFunc(virt2 &obj)
{
     std::cout << obj.virtFunc(2);
}
Run Code Online (Sandbox Code Playgroud)

c++ inline

0
推荐指数
1
解决办法
975
查看次数

HTML/CSS - 不明原因的边距

我有以下页面与一些HTML/CSS:http://jsfiddle.net/Hf6dB/1/

由于某种原因,屏幕顶部工具栏的按钮右边缘.左边,上边和下边的边距都可以,因为容器有一个填充,但边距在哪里?

也是在页面的真实版本中,你在小提琴上看不到,因为没有图标,我在每个菜单条目中都有类似的问题:

            <li>
                <div class="draggable">
                    <input id="tb-btn-search" title="Search" type="button">
                    <p>Search</p>
                </div>
            </li>
Run Code Online (Sandbox Code Playgroud)

当鼠标离开按钮时,其<p>宽度可以使用CSS过渡从0变为2.由于某种原因,当宽度<p>为零时,图标不再居中,因为在这里,还有一个额外的边距来自任何地方.

这是否与内联块显示属性的使用有关?

谢谢你的帮助!

html css inline margin css3

0
推荐指数
1
解决办法
1377
查看次数

使用operator(*)时如何防止类型推断选择`int`

我正在尝试定义以下函数(在Seq模块名称中共享空间).

module Seq =

    let scale value sequence = 
        sequence 
        |> Seq.map (fun v -> v * value)
Run Code Online (Sandbox Code Playgroud)

然而,类型推断强加元素和值是类型int.我希望这个方法可以处理整数(8位,16位等),浮点数(单和双)等.

为什么类型推断会跳转到int,以及如何使此函数更通用?

f# type-inference inline

0
推荐指数
1
解决办法
75
查看次数

了解C ++类构造函数中的“内联”吗?

我在Boost库中读取了类address_v4的源代码,并且有几个用BOOST_ASIO_DECL声明的构造函数(定义为内联)

/// Construct an address from raw bytes.
BOOST_ASIO_DECL explicit address_v4(const bytes_type& bytes);

/// Construct an address from a unsigned long in host byte order.
BOOST_ASIO_DECL explicit address_v4(unsigned long addr);
Run Code Online (Sandbox Code Playgroud)

(从此处http://www.boost.org/doc/libs/1_64_0/boost/asio/ip/address_v4.hpp

# define BOOST_ASIO_DECL inline
Run Code Online (Sandbox Code Playgroud)

(从这里http://www.boost.org/doc/libs/1_64_0/boost/asio/detail/config.hpp

那么,为c ++构造函数指定“内联”的目的是什么?它与函数的含义相同还是具有不同的含义?

c++ constructor inline declaration

0
推荐指数
1
解决办法
2103
查看次数

管道文件的 Bash 内联版本到 bluetoothctl

bt.sh

#!/bin/bash

echo -e 'scan on\n'
sleep 2
echo -e 'devices\n'
echo -e 'quit\n'
Run Code Online (Sandbox Code Playgroud)

如果我将上述文件通过管道传输到 bluetoothctl,它会按预期工作。

# ./bt.sh  | bluetoothctl
Run Code Online (Sandbox Code Playgroud)

但是如何将其作为内联脚本执行,我尝试了以下操作但它不起作用并且 bluetoothctl 似乎没有注册命令:

echo -e 'scan on' | bluetoothctl && sleep 2 && echo -e 'devices\n' | bluetoothctl && echo -e 'quit\n' | bluetoothctl;
Run Code Online (Sandbox Code Playgroud)

linux bash inline

0
推荐指数
1
解决办法
1897
查看次数

带角度插值的内联 CSS

我正在研究 Angular,并试图根据"cardData.color".

例如

cardData = {id: '1', color: '#202020'};
Run Code Online (Sandbox Code Playgroud)

我已经尝试了下面显示的代码,但它不起作用。

<div style="background-color: {{cardData.color}}; padding: 10px 20px;"></div>
Run Code Online (Sandbox Code Playgroud)

有什么办法,我可以根据对象的颜色动态设置背景颜色??谢谢你。

css inline background-color string-interpolation angular

0
推荐指数
1
解决办法
1968
查看次数

我应该在 cpp 文件中定义静态内联方法吗?

作为问题的后续问题我应该在头文件中定义静态内联方法吗?

如果我在两个单独的 cpp 文件中有两个具有相同签名的辅助函数,则编译器会抱怨 ODR。因此,在 cpp 文件中创建自由函数static以避免名称冲突并减少链接器的工作是否是一种好风格?

更一般地问:什么是打免费功能的优点和缺点inlinestaticstatic inline在CPP文件?

c++ static inline

0
推荐指数
1
解决办法
84
查看次数

在执行结束后,我们是否可以访问 INLINE 函数中的变量,就像我们在普通用户定义函数中没有的那样?

当我在类外创建 input() 函数时,calculation() 函数不起作用......它与内联函数有关系吗??

#include <iostream>

using namespace std;

class price
{
public:
int pen;
int rubber;
int scale;

void input()
{
    cout<<"enter the variables\n";
    cin>>pen>>rubber>>scale;
    cout<<"\n"<<pen<<" "<<rubber<<" "<<scale;
}
};

void calculate(price p)
{
    int rate[2],total;
    rate[0]=p.pen*5;
    rate[1]=p.rubber*3;
    rate[2]=p.scale*4;
    total=rate[0]+rate[1]+rate[2];
    cout<<"\n"<<total;
}

int main()
{
    price a,b,c;
    a.input();
    calculate(a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ inline function

0
推荐指数
1
解决办法
53
查看次数