小编hur*_*wal的帖子

如何编写惯用的clojure(+ functional)代码?

我刚开始用Clojure进行黑客攻击,虽然我喜欢这种语言,但我还是不明白如何习惯性地做某些事情.

使用compojure编写Web应用程序,这是我的控制器操作之一:

(defn create [session params]
  (let [user (user/find-by-email (params :email))]
    (if user
        (if (user/authenticate user (params :password))
            (do (sign-in session user)
                (resp/redirect "/home?signed-in=true"))
            (resp/redirect "/?error=incorrect-password"))
        (let [new-user (user/create params)]
          (sign-in session new-user)
          (resp/redirect "/home?new-user=true")))))
Run Code Online (Sandbox Code Playgroud)

我正在以非常紧迫的方式写这篇文章.使用这么多lets/ifs/dos,我不禁想到我做错了什么.我如何在功能上写这个?

这是我想要做的psuedocode

look if user exists
  if user exists, try to sign user in using password provided
    if password is wrong, redirect to "/?error=incorrect-password"
    if password is correct, sign user in and redirect to "/home?signed-in=true"
  else create user, sign …
Run Code Online (Sandbox Code Playgroud)

functional-programming clojure

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

如果用户未登录,如何将用户重定向到其他页面?(环/的Compojure)

如果用户已登录(即会话的user-id密钥值为非零值),则路由到一个页面的最佳方式是什么?如果用户未登录,则是另一个页面的最佳方法?理想的是两组不同的路线.

谢谢!

另外,有没有使用compojure的好示例应用程序?

clojure compojure ring

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

为什么rails 3.1有jQuery gem?

为什么rails 3.1有jQuery gem?似乎更容易将单个缩小的文件放在javascripts assets文件夹中.是代码组织吗?(Gemfile中的所有先决条件).有什么我想念的吗?

非常感谢!

jquery rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

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

有几种叫"使用"的方法?

(use 'korma.db)和之间有什么区别(:use korma.db)

从功能上看,他们似乎做同样的事情,但是看起来它是一个函数调用而另一个是取消引用一个映射?为什么两种写作方式以及它们最终如何做同样的事情?

非常感谢!

clojure

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