小编Yas*_*aev的帖子

学习J/K/APL

我知道所有3个都是相关的,我已经看到了用J编写的Project Euler中的问题的几个答案,以及一些写的K.我想知道的是,你建议学习哪个,你会建议去哪里关于获取材料学习它?

j apl k tacit-programming

7
推荐指数
2
解决办法
1752
查看次数

关于if-then-else缩进的haskell中的奇怪错误

我有以下代码:

foo :: Int -> [String] -> [(FilePath, Integer)] -> IO Int
foo _ [] _ = return 4
foo _ _ [] = return 5
foo n nameREs pretendentFilesWithSizes = do
  result <- (bar n (head nameREs) pretendentFilesWithSizes)
  if result == 0
  then return 0 --  <========================================== here is the error
  else foo n (tail nameREs) pretendentFilesWithSizes
Run Code Online (Sandbox Code Playgroud)

我在上面的评论的行上得到一个错误,错误是:

aaa.hs:56:2:
    parse error (possibly incorrect indentation)
Run Code Online (Sandbox Code Playgroud)

我正在使用emacs,没有空格,我不明白我做错了什么.

haskell functional-programming indentation

7
推荐指数
2
解决办法
723
查看次数

Erlang Web Gateway Interface(EWGI)和Webmachine有什么区别?

EWGIWebmachine都在Erlang中提供HTTP的抽象.我想知道他们的方法中的关键概念差异是什么?

erlang webmachine

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

Scheme中的多维向量?

我之前问了一个关于方案中数组的问题(结果是它们被称为向量,但基本上与你期望的相同).

有没有一种简单的方法可以在PLT Scheme中进行多维数组向量?为了我的目的,我想要一个叫做make-multid-vector或者什么的程序.

顺便说一下,如果这还不存在,我不需要一个完整的代码示例来说明如何实现它.如果我必须自己滚动,我会欣赏一些大方向.我可能这样做的方法是迭代矢量当前最高维度的每个元素以添加另一个维度,但我可以看到使用scheme的递归设置有点难看.

此外,这似乎是我应该能够找到自己的东西,所以请知道我确实谷歌它并没有出现.

scheme vector racket

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

主持Racket网络应用程序?

嗨,我想知道我是否可以为Racket网络应用程序提供免费或付费托管服务?对我来说,Racket看起来很有趣但是如果运行web-app的唯一方法就是拥有自己的服务器 - 这太糟糕了.

是否有类似Google App Engine for Racket的东西?那将是一流的!

scheme racket

6
推荐指数
2
解决办法
2280
查看次数

如何让emacs缩进其他东西,比如缩进定义?

所以Emacs非常擅长编辑Scheme/Racket/Lisp代码.它做的一件好事是当你输入如下代码:

(define (make-position-table)
  (for/list ([i (in-range 256)])
            `()))
Run Code Online (Sandbox Code Playgroud)

它做了一个非常聪明的事情并将第二行缩进到两列.现在第三行它完成了它对所有lisp代码所做的工作以及用于对齐所有参数的缩进.

如何自定义Emacs以使其缩进第三行,就像我引入一个新主体一样.我想要的是:

(define (make-position-table)
  (for/list ([i (in-range 256)])
    `()))
Run Code Online (Sandbox Code Playgroud)

我猜这是可能的,我只是没有想出要设置的神秘的Emacs变量.有谁知道如何做到这一点?

emacs scheme racket

6
推荐指数
2
解决办法
770
查看次数

Erlang中的map函数

除了具有许多arities(最多4个)的map函数之外,Prolog还允许您(在某些情况下)将多个arity函数映射到单个列表中.假设您要测试'x'是否是多个列表的成员.你可以做:

maplist(member(x),[[a,b,c,x],[3,f,s,x]]).
Run Code Online (Sandbox Code Playgroud)

包含成员的第一个参数,整个事物映射到列表中.

问题1: Erlang可以使用类似的东西吗?我在文档中找不到它,但我再也无法在任何Prolog文档中找到它.

问题2: 如何使用多个arities的map(和类似函数)?滚你自己?

谢谢.

erlang lambda functional-programming list prolog

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

怎么做列表串联"正确"的方式(使用尾递归)

我正在进行以下Erlang练习:

编写一个函数,给定一个列表列表,将它们连接起来.例:

concatenate([[1,2,3], [], [4,five]]) ? [1,2,3,4,five].
Run Code Online (Sandbox Code Playgroud)

我想出了这个:

concatenate([]) ->
    [];
concatenate([[H]|Tail]) ->
    [H|concatenate(Tail)];
concatenate([[]|Tail]) ->
    concatenate(Tail);
concatenate([[H|T]|Tail]) ->
    [H|concatenate([T|Tail])].
Run Code Online (Sandbox Code Playgroud)

哪个有效,但我注意到我正在做这[T|Tail]件事.

第一个问题

这仍然被认为是直接递归吗?

在那之后,我摆脱了它[T|Tail]并使用了累加器(如下所示).

第二个问题

现在第二个代码是否考虑了尾递归?

本书提示使用辅助函数(第二个代码正在做),但它看起来相当冗长.是因为我错过了什么吗?

concatenate([]) ->
    [];
concatenate([[H]|Tail]) ->
    [H|concatenate(Tail)];
concatenate([[]|Tail]) ->
    concatenate(Tail);
concatenate([[H|T]|Tail]) ->
    [H|concatenate(T,Tail)].

concatenate([],Tail) ->
    concatenate(Tail);
concatenate([H],Tail) ->
    [H|concatenate(Tail)];
concatenate([H|T],Tail) ->
    [H|concatenate(T,Tail)].
Run Code Online (Sandbox Code Playgroud)

erlang recursion functional-programming tail-recursion list

6
推荐指数
2
解决办法
1435
查看次数

OCaml和游戏开发方案

这是一个更加针对语言功能而不是编码的问题.

你能告诉我哪种语言更好(OCaml或Scheme ??)用于基本游戏开发吗?

我对计划和OCaml的了解非常基础,我发现两者同样具有挑战性,并且无法确定哪个在可扩展性和易用性方面更好.

如果你们中的任何一个人有两种语言中的任何一种都有丰富的开发经验,请给我你的意见.

任何投入都赞赏.

谢谢.

scheme ocaml racket

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

在Windows Phone 7中以编程方式打开脱机html文件

我正在windows phone 7中构建一个应用程序.我有一些HTML用户指南.我想使用Web浏览器在用户触摸帮助菜单时打开这些文件.但我不知道如何获取这些文件的本地URL.请问你能帮帮我吗?

非常感谢!

app-offline.htm windows-phone-7 offline-browsing

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