小编nuv*_*vio的帖子

如何在Clojure中实现For循环

我想在Clojure中实现这个小代码,但我很挣扎:

struct mystruct {
   int id;
   int price;
};

mystruct mydata[10];

for (int i=0; i<10; i++) {
  myfunction(mydata[i].id, mydata[i].price);
  //other things...
}
Run Code Online (Sandbox Code Playgroud)

我是Clojure的初学者,这对我来说真的很复杂,但是我真的很想学习,因为我知道Clojure有很大的优势,比如使用refs ......

如果有人能帮助我,我真的很感激.谢谢!!

arrays loops for-loop clojure

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

如何在Angular2中进行嵌套的Observable调用

我在制作嵌套的Observable调用时遇到了一些麻烦.我的意思是调用一个http服务来检索用户,然后从用户获取id以进行另一个http调用,最后在屏幕上呈现结果.

1)HTTP GET 1:获取用户

2)HTTP GET 2:获取用户的首选项,将唯一标识符作为参数传递

这转换为组件中的以下代码Blah.ts:

版本1 - 此代码不显示任何内容

 ngOnInit() {
        this.userService.getUser()
            .flatMap(u => {
                this.user = u; // save the user
                return Observable.of(u); // pass on the Observable
            })
            .flatMap(u => this.userService.getPreferences(this.user.username)) // get the preferences for this user
            .map(p => {
                this.preferences = p; // save the preferences
            });
    }
Run Code Online (Sandbox Code Playgroud)

版本2 - 此代码有效,但对我来说似乎是错误的方法:

 this.userService.getUser().subscribe(u => {
            this.user = u;
            this.userService.getPreferences(this.user.username).subscribe(prefs => {
                this.preferences = prefs;
            });
        });
Run Code Online (Sandbox Code Playgroud)

这是模板:

<h3>User</h3>

<div class="row col-md-12">
    <div class="col-md-6"> …
Run Code Online (Sandbox Code Playgroud)

rxjs angular2-observables angular

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

使用sketch.js绘制移动网页画布重置ontouch

我正在使用sketch.js插件在HTML5画布上绘图.虽然它在台式计算机上运行良好,但它似乎在移动浏览器上存在一些问题.

问题是,如果我绘制2个不同的形状,一旦我触摸它,画布将重置为空白.

为了完全清楚,我将制作和示例:绘制数字'12'将首先绘制'1'然后当我开始绘制'2'时画布将清除并且仅保留数字'2'...

<!-- CANVAS -->
<canvas id="canvas1" style="width:100%; background:white; height:150px;"></canvas>
                        <script type="text/javascript">
                            $(function () {
                                $('#canvas1').sketch();
                            });                                               
                        </script>
Run Code Online (Sandbox Code Playgroud)

就是这个.我想知道是否有一些解决方法来保持各种图纸的历史.我对任何建议持开放态度,或者知道您是否发现了类似的问题.

javascript jquery-mobile html5-canvas

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

在我的Clojure循环中没有发生任何事情

当我执行如下循环时,我有一个小代码,根本不想工作:

...

    (defn my-function []
        (println "Hi")   ;this works
        (for [i (range 10)] (println "Hello")  ;this doesn't work!
          )
    )

...
Run Code Online (Sandbox Code Playgroud)

我无法理解问题是什么,循环内的所有代码似乎都被忽略了,而"Hi"打印没有问题

我通过GUI按钮事件调用'myfunction',如下所示:

...
    (.append output-text (with-out-str  (time (my-function))))
...
Run Code Online (Sandbox Code Playgroud)

您是否认为问题可能存在于GUI或我遗漏的其他内容中?有什么建议吗?我知道我应该使用REPL来测试它,但它不适用于Netbeans ......:S

非常感谢您的帮助.

loops for-loop clojure

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

Clojure中的处理器数量?Java互操作

我想使用Java方法:R untime.getRuntime().availableProcessors()并将结果保存在整数变量中.

所以在Clojure中我这样做了:

(def n-cpu  ((.availableProcessors (Runtime/getRuntime)) ))
Run Code Online (Sandbox Code Playgroud)

还有这个:

(def n-cpu (Integer/parseInt ((.availableProcessors (Runtime/getRuntime)) )))
Run Code Online (Sandbox Code Playgroud)

但没有工作.

有什么建议?

java performance interop clojure

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

反转clojure中的向量(noob)

嗨,我刚开始使用Clojure,我无法设法反转整数向量.

;generate a vector of random integers
(defn generate-rands
  [x]
  (vector (take x (repeatedly #(rand-int 100))))
  )

;vector of integers
(def my-vector (generate-rands 10))

;reverse the vector of integers
(def my-vector-reversed (reverse my-vector))

;main
(defn main-app
  []  
  (println "My Vector: \t\t\t" my-vector)
  (println "My Vector Reversed: \t" my-vector-reversed))
Run Code Online (Sandbox Code Playgroud)

输出是

=> (main-app)
My Vector:           [(14 49 29 3 66 7 60 60 34 19)]
My Vector Reversed:  [((14 49 29 3 66 7 60 60 34 19))]
nil
#'startingclojure.app/main-app

=> (vector? …
Run Code Online (Sandbox Code Playgroud)

clojure

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

从反应流 SubmissionPublisher 接收项目

我正在尝试 Java 9 中的一些新功能。所以我组织了一个测试,让发布者以给定的速率发出数字。我还实现了一个订阅者来收听这些出版物并将它们打印到控制台。

虽然我可能不完全理解如何使用这个 Api,因为该onNext()方法不打印任何内容,getLastItem()只返回 0。

唯一似乎有效的部分是onSubscribe()正确初始化lastItem变量的部分。

@Test
public void testReactiveStreams(){
    //Create Publisher
    SubmissionPublisher<Integer> publisher = new SubmissionPublisher<>();

    //Register Subscriber
    TestIntegerSubscriber subscriber = new TestIntegerSubscriber();
    publisher.subscribe(subscriber);

    assertTrue(publisher.hasSubscribers());

    //Publish items
    System.out.println("Publishing Items...");

    List.of(1,2,3,4,5).stream().forEach(i -> {
        publisher.submit(i);
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            // blah
        }
    });
    assertEquals(5, subscriber.getLastItem());

    publisher.close();
}


private class TestIntegerSubscriber implements Flow.Subscriber<Integer> {

    private int lastItem;
    @Override
    public void onSubscribe(Flow.Subscription subscription) {
        System.out.println("Subscribed");
        lastItem = 0;
    } …
Run Code Online (Sandbox Code Playgroud)

reactive-programming reactive-streams java-9

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

Clojure STM中用于银行交易的大数据结构LOOP

我是功能编程和Clojure的新手,所以我不确定如何为大学的项目做些什么.该项目应显示Clojure STM对银行交易的优势(从账户A转账到账户B).所以我打算这样做:

  1. 定义初始数据,如Refs矩阵或更好的东西
  2. 生成执行的随机操作: [ random-account-source-id(0, N_MAX) , random-account-destination-id(0, N_MAX), random-money (0, 1000) ]
  3. 将事务插入数据结构中
  4. 对于矩阵中的所有插入,将资金从source-id转移到destination-id,例如:
    
    for i=0; i lt N; i++;
        synchronize: transfer (matrix[i].source,matrix[i].dest,matrix[i].money)
    
    Run Code Online (Sandbox Code Playgroud)

我不确定这个,然后,也许:

(defn do-all[]
  (dosync
    (when (pos? N)
      (transfer (get matrix [pos 1], get matrix [pos 2], get matrix [pos 3])))))
Run Code Online (Sandbox Code Playgroud)

clojure stm

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

如何在Clojure中的哈希映射上通过索引获得随机访问?

我想MAX_OPERATIONS从一个账户到另一个账户进行一定数量的资金转账.帐户作为refs存储在散列图调用程序中my-map(int account-id,double balance).

汇款需要从散列图"随机指数",并将它作为account-fromtransfer.account-destination并且amount都应该修复.

不幸的是我不能让它发挥作用.

(defn transfer [from-account to-account amount]
  (dosync
    (if (> amount @from-account)
      (throw (Exception.  "Not enough money")))
    (alter from-account - amount)
    (alter to-account + amount)))

(defn transfer-all []
  (dotimes [MAX_OPERATIONS]
    (transfer (get mymap (rand-int[MAX_ACCOUNT]) :account-id) account-destination amount)))
Run Code Online (Sandbox Code Playgroud)

indexing clojure hashmap random-access

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

如何在MYSQL/PHP中显示两位小数?

我希望显示£2.00而不是£2£3.50而不是£3.5.

这些数字可以说priceDOUBLE在MySQL数据库中定义的.如何强制MySQL或PHP显示两位小数?

非常感谢!

php mysql double

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