小编Kai*_*Kai的帖子

Visual C#Studio项目中的哪些文件不需要进行版本控制?

我是Visual C#Studio的新手(实际上使用的是Express版,但是另一个开发人员正在使用完整版),我们正在使用版本控制(svn).

我可以将项目文件添加到存储库,因为这个repo只适用于使用Visual C#Studio的我们两个人.但感觉就像那里有一些无关的文件.有熟悉Visual C#Studio项目文件的人能告诉我哪些文件可以安全地被svn:忽略?

一些可疑文件:

  • project.csproj
  • project.csproj.Debug.cachefile
  • project.csproj.user
  • project.sln
  • project.suo
  • 内容\ Content.contentproj

我确定.sln是必需的,但这是什么.suo?和.csproj?在加载项目时,Visual C#Studio是否可以/应该生成这些内容?

c# svn visual-studio-2008 visual-studio

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

SMLNJ有没有任何类型的调试器?

我查看了SMLNJ用户指南,找不到任何有关调试功能的信息.我很想看到一个堆栈跟踪,或者通过一个函数.这可能吗.是否有其他类似SML变体的实现可以提供此功能?

smlnj

17
推荐指数
3
解决办法
5532
查看次数

如何在SML中的case语句中打印?

我刚刚开始使用SML,我正在尝试修改一些代码,以便我理解它正在做什么(我找不到一个像样的SML/NJ调试器,但这是一个单独的问题).

fun type_check e theta env non_gens = 
  case e of
   constant_int _ => (integer,theta) 
  | 
   constant_bool _ => (boolean,theta) 
  | ...
Run Code Online (Sandbox Code Playgroud)

假设这是有效的代码,因为constant_int是已经声明的数据类型的一部分,等等.如何添加一个print语句来说"返回"整数"'到案例中?我试过了:

...
constant_int _ => (print "returning integer") (integer,theta)
...
Run Code Online (Sandbox Code Playgroud)

但我得到:

    stdIn:167.22-167.65 Error: operator is not a function [tycon mismatch]
      operator: unit
      in expression:
        (print "returning integer") (integer,theta)

我想我只是不理解如何执行一系列语句,只有最后一个语句应该被视为返回值.有什么建议?

另外,我如何打印自己的数据类型值?当我尝试将数据类型值传递给print()时,SML不喜欢所以我可能必须为每种数据类型创建一个新的打印函数,这是正确的吗?

sml smlnj

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

你能从Scheme中的函数中返回任何内容吗?

我正在编写一个方案解释器,如果是if语句,例如:

(if (< 1 0) 'true)
Run Code Online (Sandbox Code Playgroud)

我试过的任何解释器都会返回一个新提示.但是当我对此编码时,我有一个if是否有另一种表达方式.如果不打印任何东西,我可以返回什么?

(if (has-alternative if-expr)
  (eval (alternative if-expr))
  #f) ;; what do I return here?
Run Code Online (Sandbox Code Playgroud)

lisp scheme

10
推荐指数
2
解决办法
2万
查看次数

Lisp评估let语句

我正在编写一个Scheme解释器,我面临一个有效的let语句,例如:

;; should print 7
(let ((a 4) (b 3))
    (let ((a (* a a)) 
          (b (* b b)))
       (+ a b)
       (- a b)))
Run Code Online (Sandbox Code Playgroud)

我的解释器只实现了Scheme的一个纯函数子集,因此不存在set!等副作用.在纯函数式语言中,为什么要在let语句中允许多个表达式,如上所述?

在编写我的翻译时,除了let中的最后一个表达式,我还有什么理由可以评估它吗?似乎它们永远不会影响最后评估的陈述的结果.

lisp scheme interpreter

8
推荐指数
2
解决办法
1453
查看次数

什么是在函数列表中查找元素的Scheme函数?

我有一个元素列表'(abc),我想找到x是否(真或假)x,例如,x可以是'a或'd.这有内置功能吗?

lisp scheme

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

在gprolog中声明谓词动态

我在Prolog中有这个代码:

dynamic(player_at/1).
player_at(house).
goto(X) :- retract(player_at(house)), assert(player_at(X)).
Run Code Online (Sandbox Code Playgroud)

但我仍然得到这个错误:

uncaught exception: error(permission_error(modify,static_procedure,player_at/1),retract/1)
Run Code Online (Sandbox Code Playgroud)

当我执行goto(foo)时.

我已经阅读了动态文档,但我无法弄清楚如何使用它,至少在gprolog中.我错过了什么吗?

prolog

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

如何在DrScheme中重新定义常量标识符?

我正在使用DrScheme编写一个Scheme解释器.我定义了一个Read Eval Print Loop,我正在重新定义eval过程.这在Chez Scheme等其他方案实现中效果很好,但我不喜欢Chez Scheme中的代码编辑,所以我想使用DrScheme.

当我做出如下定义:(define(eval exp env)(cond ...))它说:define-values:不能改变常量标识符:eval

有没有办法覆盖它,让我改变常量标识符?我宁愿不必重命名所有变量来解决这个问题.

scheme racket

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

如何判断列表是否包含第三项?

我有一个函数,它采用一个有两个或三个元素的列表.

;; expecting either ((a b c) d) or ((a b c) d e)
(define (has-third-item ls)
      (if (null? (caddr ls))
          false
          true)
      )
Run Code Online (Sandbox Code Playgroud)

但是这段代码失败了

mcar: expects argument of type <mutable-pair>; given ()
Run Code Online (Sandbox Code Playgroud)

在(null?(caddr ls))表达式上.

我也试过了

(eq? '() (caddr ls))
Run Code Online (Sandbox Code Playgroud)

但它也没有用.如何判断是否有第三项?

lisp scheme

5
推荐指数
2
解决办法
2091
查看次数

在Prolog中获取谓词的所有解决方案

我正在Prolog写一个文本冒险游戏,我打印出房间出口.我有以下代码:

exits_from(Room) :-
  connected(Room, X),
  write(X), write('  ').
Run Code Online (Sandbox Code Playgroud)

其中connected/2是:

connected(X, Y) :- path(X, Y).
connected(X, Y) :- path(Y, X).
Run Code Online (Sandbox Code Playgroud)

和路径是:

path(room, hallway).
path(hallway, foyer).
Run Code Online (Sandbox Code Playgroud)

等等.

当我打印一个房间的出口时,它得到第一个,然后想要一个';' 说我想要另一个解决方案.反正是否强制谓词完全计算结果,以便玩家不必继续要求更多退出?

prolog

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

什么是类型推断?

它只存在于静态类型语言中吗?并且只有当语言不是强类型时才存在(即,Java 是否有强类型)?此外,它属于哪里 - 在编译阶段假设它是一种编译语言?

一般来说,类型不明确时的规则是由语言规范规定的还是由实现决定的?

types type-systems programming-languages type-inference

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

如何在SML中强制类型(如强制转换)

我正在创建一个Rationals(int*int)结构,我的一个函数是:

  fun diff ((n, d), (n', d')) = let val (top, bot) = sum ((n, d), (~n', d'))
                                  in 
                                    (top / gcd(top, bot), bot / gcd(top, bot))
                                  end
Run Code Online (Sandbox Code Playgroud)

gcd给了我最大的共同点,所以我最终得到2/8,而不是它应该是1/4.gcd使用mod来查找gcd,因此它返回一个int.但我不能得到分区的表达式作为int类型.当我尝试添加: int * int到diff声明的末尾时,它给出了一个类型错误,表达式real*real和int*int不匹配.

如何强制整数除法,或将表达式转换为整数?如果两者都有可能,哪一个更好?

sml smlnj

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