如果我这样做,例如:
(defmacro qqq [] '(toString [this] "Qqq"))
(reify Object (qqq))
Run Code Online (Sandbox Code Playgroud)
它失败是因为reify
看到(qqq)
而不是(toString [this] "Qqq")
.
在通常的解决办法是,包"具体化"与我自己的事情调用宏,但它更长,更具侵入性.
如何使我的宏更强大,通常的宏首先扩展?
期待像:
(defmacro ^{:priority 100500} qqq [] '(toString [this] "Qqq"))
(reify Object (qqq))
Run Code Online (Sandbox Code Playgroud)
要么
(defmacro qqq [] '(toString [this] "Qqq"))
(expand-first #{qqq} (reify Object (qqq)))
Run Code Online (Sandbox Code Playgroud) 请考虑以下伪代码:
def g_user():
while True:
yield read_user_input()
def g_socket():
while True:
yield read_socket_input()
def g_combined(gu, gs):
# should read user or socket input, whichever is available
while True:
sel = select(gu, gs)
if sel.contains(gu):
yield gu.next()
if sel.contains(gs):
yield gs.next()
gc = g_combined ( g_user(), g_socket() )
Run Code Online (Sandbox Code Playgroud)
如何以最简单的方式实现这一点?
我希望用户能够像这样输入:
5+6*t+sin(2*t)
Run Code Online (Sandbox Code Playgroud)
,所以它将转换为:
(+ 5 (* 6 t) (sin (* 2 t)))
Run Code Online (Sandbox Code Playgroud)
,所以我可以将它评估为一些JIT的函数,以后再高效执行.
是否已有可用于最新Clojure的库(具有运营商优先级)?
好的选项卡完成意味着使用反射或其他任何东西动态生成(不需要在某处预先定义完成的预定义列表),并且知道在特定位置可以跟什么不能跟什么.
就像(.<TAB> x)
我将得到x的方法列表一样,在(println <TAB>)
我得到本地和全局定义(Math/<TAB>
的列表中,我得到数学函数列表...
例如,我喜欢Tab在ghci(Haskell)或ipython中工作的方式.
例如,
git gui&
;Git-gui的窗口消失了.即使我用过git gui&disown
.当我按下Ctrl + C时,即使它不在前景中.
如何git gui
从Windows控制台正确分离?
PPP和tun/tap有什么区别?两者似乎都是用于在用户空间程序上实现网络.
使用PPP,内核创建ppp%d供使用,让用户空间程序为它提供后端.
使用tun/tap,内核创建tun%d供使用,让用户空间程序为它提供后端...
将程序从使用tun/tap (我的Android设备上似乎不可用)更改为ppp 有多难?
我正在尝试在Haskell内快速生成随机数据,但是当我尝试使用任何惯用方法时,我会得到低速和大GC开销.
这是简短的代码:
import qualified System.Random.Mersenne as RM
import qualified Data.ByteString.Lazy as BL
import qualified System.IO as SI
import Data.Word
main = do
r <- RM.newMTGen Nothing :: IO RM.MTGen
rnd <- RM.randoms r :: IO [Word8]
BL.hPutStr SI.stdout $ BL.pack rnd
Run Code Online (Sandbox Code Playgroud)
这是快速代码:
import qualified System.Random.Mersenne as RM
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as BL
import qualified Data.Binary.Put as DBP
import qualified System.IO as SI
import Data.List
import Control.Monad (void, forever)
import Data.Word
main = do
r <- …
Run Code Online (Sandbox Code Playgroud) 从各种帖子中我知道'喜欢'的时间戳由FB存储,特别是从这里:
https://developers.facebook.com/docs/reference/opengraph/action-type/og.likes/
Run Code Online (Sandbox Code Playgroud)
但是,我很难弄明白的是,如果一张照片被发布到一个活动中,我会得到所有图片的喜欢和每个喜欢的时间(当然,由谁).
据我所知,它必须是这样的:
但是肯定第2步需要我代表每个受邀用户登录,无论如何,以上真的不会过多地推荐FB吗?所以我假设我的程序不正确.
任何人都可以告诉我fql将获得一个事件的照片,然后是喜欢这张照片的用户,然后是类似的时间戳吗?
提前致谢!
如何获取稀疏块大小并检查Linux中reiserfs/ext3中稀疏文件中给定偏移量处是否存在数据?
我想用它来实现使用FUSE的简单的copy-on-write块设备.
或者我最好将位图保存在单独的文件中?
我已经开始尝试Haskell并遇到问题.qqq是一个函数,如果使用"Nothing"调用则应打印一个字符串,如果使用"Just something"调用则打印其他内容.
第一次尝试似乎工作:
qqq Nothing = print "There isn't anything to be printed."
qqq (Just x) = print "There is something to be printed." >> print x
main :: IO ()
main = qqq (Just 43)
Run Code Online (Sandbox Code Playgroud)
但:
main = qqq (Nothing)
让它失败时(约束中的"模糊类型变量'a0':(显示a0)因使用'qqq'而产生"")qqq :: Maybe x => x -> IO ()
- > Type constructor 'Maybe' used as a class
- >但不是吗?qqq :: (Maybe x) -> IO ()
.现在签名本身看起来很成功.但是,如果遇到main = qqq (Just 43)
这种神秘的(Show a0) …