小编Yas*_*aev的帖子

冒泡排序算法实现(Haskell与C)

我在C和Haskell中编写了2个冒泡排序算法的实现.Haskell实现:

module Main where
main = do
    contents <- readFile "./data"
    print "Data loaded. Sorting.."
    let newcontents = bubblesort contents
    writeFile "./data_new_ghc" newcontents
    print "Sorting done"
bubblesort list = sort list [] False
rev  = reverse          -- separated. To see
rev2 = reverse          --  who calls the routine
sort (x1:x2:xs) acc _
    | x1 > x2           = sort (x1:xs) (x2:acc) True
sort (x1:xs) acc flag   = sort xs (x1:acc) flag
sort [] acc True        = sort (rev acc) [] False …
Run Code Online (Sandbox Code Playgroud)

c optimization haskell functional-programming bubble-sort

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

将其他文件添加到haskell

我在haskell中编写应用程序,我想将一些函数和数据类型导出到其他文件,然后能够在我的主文件中使用它们.

这该怎么做 ?

感谢帮助

haskell functional-programming

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

方案/记忆中的数组

如何在Scheme中使用数组?

特别是,我正在尝试使用memoization实现递归的fibonacci过程.Scheme中是否存在数组?

如果没有,我该如何实现memoization?

scheme memoization dynamic-programming racket

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

Scheme/Racket:做循环评估顺序

以下过程在方案r6rs和Racket中都有效:

;; create a list of all the numbers from 1 to n
(define (make-nums n)
  (do [(x n (- x 1)) (lst (list) (cons x lst))]
    ((= x 0)
     lst)))
Run Code Online (Sandbox Code Playgroud)

我已经为r6rs和Racket测试了它并且它确实正常工作,但我只知道DrRacket肯定.

我的问题是,如果保证了一步表达式((- x 1)(cons x lst)在这种情况下)将按顺序进行评估.如果不能保证,那么我的程序不是很稳定.

我没有在任何一种语言的标准中看到任何指定这一点的东西,但我在这里问,因为当我测试时它按顺序进行了评估.

operator-precedence racket do-loops

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

Oracle:一个查询,用于计算字符串中所有非字母数字字符的出现次数

计算出现在Oracle数据库列中的字符串中的所有非字母数字字符的出现的最佳方法是什么.

在尝试找到解决方案时,我意识到我有一个与问题无关的查询,但我注意到我可以修改它以希望解决这个问题.我想出了这个:

SELECT  COUNT (*), SUBSTR(TITLE, REGEXP_INSTR(UPPER(TITLE), '[^A-Z,^0-9]'), 1)
FROM    TABLE_NAME
WHERE   REGEXP_LIKE(UPPER(TITLE), '[^A-Z,^0-9]')
GROUP BY    SUBSTR(TITLE, REGEXP_INSTR(UPPER(TITLE), '[^A-Z,^0-9]'), 1)
ORDER BY COUNT(*) DESC;
Run Code Online (Sandbox Code Playgroud)

这可以找到FIRST非字母数字字符,但我想计算整个字符串中的出现次数,而不仅仅是第一次出现的次数.E. g.目前我的查询分析"a(字符串)"将找到一个开括号,但我需要它找到一个左括号和一个闭括号.

regex sql oracle alphanumeric

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

Erlang/OTP:对现有模块的更改

我正在解决一个问题的解决方案,这需要改变模块的一个功能gb_trees.

我收到编译版本的错误gb_trees:

1> c(gb_trees).
cannot write to .bea#
...
2>
Run Code Online (Sandbox Code Playgroud)

我可以通过什么方式进行更改并编译已有的模块?

erlang erlang-otp

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

表coulmn合并查询

我做了一个表查询是

CREATE TABLE questions (
     _id             INTEGER PRIMARY KEY AUTOINCREMENT
   , question        TEXT
   , correct_answer  TEXT    DEFAULT (null)
   , answer1         TEXT    DEFAULT (null)
   , answer2         TEXT    DEFAULT (null) 
   , answer3         TEXT    DEFAULT (null)
   , answer4         TEXT    DEFAULT (null)
   , difficulty      INTEGER DEFAULT (null) 
   , nid             INTEGER
);
Run Code Online (Sandbox Code Playgroud)

现在想要省略correct_answer列,并在answer1列中做出正确答案,在answer2,answer3,answer4中做出其他3个错误答案.但问题是目前正确答案可能是四个中的任何一个,所以我无法合并

作为示例表就像 在此输入图像描述

你可以在第一行看到答案2中的正确答案,第二行正确答案在答案4中

那么我怎么只在answer1栏和answer2,answer3,answer4中分别得到正确的答案?

什么是SQL查询?或任何其他想法?

mysql sql database

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

在Racket中进行模式匹配时的替代方案

我想匹配Racket(以前的PLT Scheme)中的以下两个列表之一:

'(somename : (_ptr o sometype))
Run Code Online (Sandbox Code Playgroud)

要么

'(somename : (_ptr io sometype))
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,唯一的区别是嵌入式列表中的文字"o"和"io".

我可以看到两种基本方法来做到这一点.

或者:

(match myexpr 
    [(list name ': (list '_ptr 'o _)) name]
    [(list name ': (list '_ptr 'io _)) name]
    [_ 0])
Run Code Online (Sandbox Code Playgroud)

这似乎是重复的努力,但非常清楚.要么:

(match myexpr 
    [(list name ': (list '_ptr mode _)) 
      (if (or (eq? mode 'o) 
              (eq? mode 'io))
     name
     0)]
    [_ 0])
Run Code Online (Sandbox Code Playgroud)

这避免了几乎重复的模式,但不太清楚.

我的问题是,有没有办法在球拍模式匹配中指定替代品,类似{'o | "IO}?而且,如果没有,上面列出的两种方式中的哪一种将是最惯用的Racket方式?

pattern-matching racket

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

甚至在计划中的总和

这是我第一次使用Scheme.我有一个整数列表,我想得到列表中所有偶数的总和.

 ; sum_even
(define (sum_even l)
  (if (null? l) l
  (cond ((even? (car l)) 0)
        ((not(even? (car l))) (car l)))
  (+ (sum_even (car l) (sum_even(cdr l))))))
(sum_even '(2 3 4))
Run Code Online (Sandbox Code Playgroud)

scheme functional-programming list

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

Scheme中的Streams

以下过程如何工作:

(define integers
  (cons-stream 1 
     (stream-map (lambda (x) (+ x 1)) 
        integers))
Run Code Online (Sandbox Code Playgroud)

scheme stream

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