小编J C*_*per的帖子

帮助使用交互式Emacs Lisp函数替换文本

我已经使用Emacs几个月了,我想开始使用elisp编程.具体来说,我想写自己的interactive功能.但是,我有点失落.(interactive ...)有很多选择,我不确定我想要哪一个.然后,我真的不知道我需要的功能的名称.如果有人能帮我把我的伪代码变成真正的代码,我会非常感激!(和往常一样,任何提供信息的地方的链接都会很好.现在我刚读过这篇文章.)

这是我想要做的伪代码:

(defun my-func (buffer) ; I think I need the buffer as an arg?
  "does some replacements"
  (interactive ???) ; ?
  (let (replacements (list
   '("a-regexp-string" . "a-replacement-string-with-backreferences")
   ...)) ; more of the above
    (while replacements
      (let (current (car replacements)) ; get a regexp-replacement pair
        (some-regexp-replace-func buffer (car current) (cdr current)) ; do the replacement
        (setq replacements (cdr replacements))))))
Run Code Online (Sandbox Code Playgroud)

emacs elisp

4
推荐指数
1
解决办法
1120
查看次数

Haskell如何知道你指的是哪个类型类实例?

这个问题出现在阅读关于应用函子的优秀的Learn You a Haskell的新篇章中.

作为Maybe实例的定义的一部分,Applicative类型类具有:

pure = Just
Run Code Online (Sandbox Code Playgroud)

如果我只是去GHCi并导入Control.Applicative,并执行:

pure (3+)
Run Code Online (Sandbox Code Playgroud)

我没有得到任何东西(有道理).但是,如果我在表达式的一部分中使用它:

pure (3+) <*> Just 4
Run Code Online (Sandbox Code Playgroud)

我得到的只是7.我想这也就不足为奇了,但是我错过了关于类型类如何工作的一些不可或缺的东西,我认为,pure这里的调用没有含糊之处.

如果我的困惑有意义,任何人都可以详细解释发生了什么吗?

haskell type-inference typeclass

4
推荐指数
1
解决办法
637
查看次数

Haskell类定义中的隐式类型参数?

通常看来以下是非法的:

class Foo a where
    foo :: a -> b -> a
Run Code Online (Sandbox Code Playgroud)

这是有道理的; 我们怎么知道是什么b

但是,如果我们看看Functor的定义:

class Functor f where
    fmap :: (a -> b) -> f a -> f b
Run Code Online (Sandbox Code Playgroud)

我们看到ab显示,即使我们只指定f为类型变量.我猜这是允许的,因为编译器看到例如f a并且可以发现它f本身必须采用a,所以a在我们的Functor定义中使用它是安全的.我对么?

haskell type-inference typeclass

4
推荐指数
1
解决办法
343
查看次数

F#中的对象/记录的无点样式

当我尝试使用无点功能样式进行编程时,"点符号"与对象和记录一起工作的方式受到了阻碍(我认为这是一种使用默认情况下的功能语言的简洁方法).

是否有一个我缺少的操作员或功能,让我做一些像: (.) object method而不是object.method

(从我读到的关于new ?运算符的内容来看,我认为它的工作原理是这样的.除了它需要定义并进入整个动态绑定之外,我认为我不需要它.)

换句话说,我可以将一个方法作为参数应用于其对象,就像我将一个普通函数应用于它的参数一样吗?

methods f# functional-programming function

3
推荐指数
1
解决办法
708
查看次数

什么是用于小型F#winforms项目的优秀轻量级数据库?

我有一个我正在考虑用F#做的项目,但我对这门语言还很新.我需要一个简单的数据库,希望它易于使用.sqlite适用于F#项目吗?其他建议?

database f#

3
推荐指数
2
解决办法
674
查看次数

为什么WPF使用附加属性来定位网格中的位置?

为什么我们需要"附加属性"?它的概念让我有点烦恼,因为你可以想象设置特定DependencyObject上甚至不存在的属性值(并且它们将被默默地忽略).它几乎看起来像是一个寻找问题的解决方案 - 为什么不只是像HTML那样做,并让父元素明确地确定儿童定位等事情?

也就是说,而不是:

<Grid>
  <Grid.ColumnDefinitions>
    <!-- etc. -->
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
    <!-- etc. -->
  </Grid.RowDefinitions>
  <SomeElement Grid.Column="0" Grid.Row="0" />
  <!-- etc. -->
</Grid>
Run Code Online (Sandbox Code Playgroud)

为什么不是这样的(相当于<tr><td>在HTML中):

<Grid>
  <Grid.Row>
    <Grid.Column>
      <SomeElement />
    </Grid.Column>
    <!-- etc. -->
  </Grid.Row>
</Grid>
Run Code Online (Sandbox Code Playgroud)

也许网格只是一个不好的例子,附加属性在其他环境中更有意义?或许我完全错过了一些东西?

wpf xaml design-decisions attached-properties

3
推荐指数
1
解决办法
799
查看次数

为什么Dictionary <T1,List <T2 >>不能转换为Dictionary <T1,IEnumerable <T2 >>?

我想知道为什么我不能只是演员(我有一个模糊的想法,这可能与那个共同/逆转的东西有关?),我被迫将第一个字典的元素复制到新的字典中得到我想要的类型?

.net c# generics collections casting

3
推荐指数
1
解决办法
381
查看次数

具有空访问者的属性

虽然我当然熟悉自动属性,但我在工作中遇到过这个问题,这似乎是一个截然不同的野兽:

public SomeType SomeProp
{
  get
  {
    return someField;
  }
  set
  {
  }
}
Run Code Online (Sandbox Code Playgroud)

我很惊讶它甚至编译,我想它一定是一个bug:该属性似乎允许设置,但这样做绝对没有.

这个结构有用吗?电梯中的那些"关门"按钮是不是做了什么,但让用户感觉良好?

c# properties

3
推荐指数
1
解决办法
174
查看次数

Ada:用函数重命名属性?

在最近的一个问题中,我询问了'操作,并了解到它用于获取某些类型的语言定义的"属性".从我可以收集的内容来看,无法为您的类型创建自己的属性.

我遇到了一些我不理解的代码:

function Image(C: Ada.Containers.Count_Type) return String renames
          Ada.Containers.Count_Type'Image;
Run Code Online (Sandbox Code Playgroud)

这是做什么的?

attributes function ada

3
推荐指数
1
解决办法
444
查看次数

为什么弃用箭头符号?

我正在通过F#阅读一个非常流行的wikibook.在List Comprehensions部分的底部,它解释了可以使用箭头运算符而不是yield/yield!关键字.但它注意到这已被弃用.我想知道为什么?

syntax f#

2
推荐指数
1
解决办法
479
查看次数

基本的F#问题:可变性,资本化标准,功能与方法

如果已经有人问过,请随时给我指出其他答案!

我本月刚刚发布新版本的F#.我有OO和函数语言的一些背景知识(Haskell和Scheme,但不是OCaml/ML).到目前为止,已经出现了几个问题,而不是阅读F#CTP附带的小教程.

1)可变变量优于monad吗?如果是这样,那么在F#中完全避开monad吗?

2)我对使用的大小写感到困惑.在本教程代码文件中,有时函数以小写字母开头,有时以大写字母开头.我知道MS倾向于喜欢带有函数和方法的初始大写,但在这里似乎有两种方法可以做到这一点.这对我来说并不是什么大不了的事,因为我只是在自己的时间玩耍,但我很好奇标准是什么.

3)我对OO和功能样式的整体组合感到非常困惑.print_string "string"有道理,但接下来就是List.map fn list(除非List只是命名空间,如果是这样,请原谅我).然后是str.Length.任何人都在关心何时使用什么,哪个更受欢迎?

谢谢!

oop f# functional-programming naming-conventions mutable

1
推荐指数
2
解决办法
1029
查看次数

为什么我可以将"C字符串"传递给期望std :: string的函数并且它有效?

我有一个方法:

void Foo::Bar(const std::string &str)
{
    printf("%d", str.length());
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,它可以无缝地工作

foo.Bar("hello");
Run Code Online (Sandbox Code Playgroud)

我以为"hello"const char *,不是std::string

c++ type-conversion

1
推荐指数
3
解决办法
1654
查看次数

我是否正确地假设不能向前声明库的不透明指针类型?

有很多关于前向声明和不透明类型的问题,但大多数似乎是从库作者的角度来看的,或者人们试图使用没有指针的不完整类型等。

我正在使用一个接口接受/返回FOO *指针的库。我想确认我不能(或不应该)以某种方式向前声明FOOFOO *在我的头文件中(它定义了一个带有FOO *成员的结构)。

我知道我可以只#include <library.h>在我的头文件和我的 .c 文件中,但由于这实际上只是一个学习项目,我想得到澄清。(一方面,前向声明似乎是可能的,因为我的结构成员只是一个指针,因此它的大小在不知道是什么的情况下是已知的FOO——但另一方面,我不知道它是否有效/聪明的typedef东西,FOO当库已经这样做。)

提前致谢!

c forward-declaration opaque-pointers

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