1957

无聊蛋疼的1957写的低端博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 22 下一页

2013年8月21日

摘要: ;;;lambda calculus;;;booleanstrue = \x.\y.xfalse = \x.\y.yif = \v.\t.\f. v t f;;;exif true M N = M--->(\v.\t.\f. v t f) (\x.\y.x) M N--->(\x.\y.x) M N--->M;;;Pairs;fst(mkpair M N) = M;snd(mkpair M N) = Nmakpair = \x.\y.\f. f x yfst =\p.p truesnd =\p.p false;;;Church number;;;a lambda functi 阅读全文

posted @ 2013-08-21 22:32 1957 阅读(460) 评论(0) 推荐(0) 编辑

2013年7月16日

摘要: 看看fmap的类型fmap :: Functor f => (a -> b) -> f a -> f b很明显的,第一个参数是function,第二个参数是functor的一个instance但是我们这么写ghci> let f = (*5) ghci> let g = (+3) ghci> (fmap f g) 8而且最后得到55看到这个当时我和我的小伙伴们都惊呆了!为毛啊,明明是一个 x -> y 的function啊,为毛可以!!!后来经过九瓜老师的点拨a + b我们可以看作 (+) a b同理 a -> b就是 (->) a 阅读全文

posted @ 2013-07-16 14:24 1957 阅读(417) 评论(0) 推荐(0) 编辑

2013年7月5日

摘要: aeson是haskell的一个库,其实我也不太懂,不过大概是这样的:定义一个类型如data Person = Person { firstName :: String , lastName :: String , age :: Int , likesPizza :: Bool } deriving Show 然后我们来实现FromJSON , ToJSON这两个classinstance FromJSON Person whereparseJSON (Object v) = Person v .... 阅读全文

posted @ 2013-07-05 09:43 1957 阅读(919) 评论(0) 推荐(0) 编辑

2013年7月4日

摘要: OverloadedStrings这是最常见的一个扩展,很多时候都能看到Haskell中,数字是num的多态,比如:a :: Inta = 1b :: Doubleb = 1c:: Floatc = 3.3d :: Rationald = 3.3但是对于String来说呢,却不是多态,都是一个类型String加了OverloadedStrings这个扩展后,就变成了多态了a :: Stringa = "Hello"b :; Textb = "Hello"参考资料:Guide to GHC Extensionshttps://www.fpcomplete. 阅读全文

posted @ 2013-07-04 18:59 1957 阅读(209) 评论(0) 推荐(0) 编辑

2013年7月2日

摘要: Software Transactional Memory,软件事务内存管理(应该是这么翻译的吧T_T)类似于数据库的事务,所有的操作都有log,最后验证其他线程是否对数据进行修改,要是有那么就回滚。然后继续来下面是Haskell提供的STM操作。atomically :: STM a -> IO a retry :: STM aorElse :: STM a -> STM a -> STM a newTVar :: a -> STM (TVar a)readTVar :: TVar a -> STM awriteTVar :: TVar a -> a -& 阅读全文

posted @ 2013-07-02 15:05 1957 阅读(287) 评论(0) 推荐(0) 编辑

2013年6月23日

摘要: = =测试环境直接就python index.py就好啦生产环境nginx + web.py + uwsgi安装uwsgi...pip install uwsgi首先把自己的代码小改一下。。。app = web.application(urls, globals())application = app.wsgifunc()就是加一句appcation = app.wsgifunc()然后再nginx配置个serverserver { listen 80; server_name 127.0.0.1; location /{ include uwsgi_param... 阅读全文

posted @ 2013-06-23 18:45 1957 阅读(2500) 评论(0) 推荐(0) 编辑

2013年6月10日

摘要: 妈蛋- -,纠结了我10多分钟。。。。原来是。。。jquery用了$...然后。。。web.py里面也是用$的。。。所以本来就是$改写成$$转义。。。蛋疼。。。 阅读全文

posted @ 2013-06-10 15:27 1957 阅读(822) 评论(0) 推荐(0) 编辑

2013年5月31日

摘要: 后缀数组真心是强有力的字符串处理工具,有兴趣的可以参考下其他资料,比如集训队论文什么的。我这里只是总结下我这两天学习的。顾名思义,后缀数组,就是字符串后缀组成的数组。比如abcde就有后缀abcdebcdecdedee将这些后缀按字典序排序后组成的数组就叫后缀数组设SA是后缀数组,对于bace的后缀baceacecee按字典序排序未ace,bace,ce,e那么SA[1]=ace,SA[2]=bace...当然也不用记录一个字符串,用这个后缀在原组数的位置就可以表示这个后缀了SA[1]=2,SA[2]=1...然后还有个Rank数组,和SA正好相反Rank[i]表示i后缀的排名比如Rank[a 阅读全文

posted @ 2013-05-31 15:46 1957 阅读(227) 评论(0) 推荐(0) 编辑

2013年5月29日

摘要: BM算法的简化版后缀匹配。若不匹配,那么跳转为主串最后一个字符在模式串中出现的最右位置,若没出现,那么直接跳转模式串的长度。int horspool(char* T,char* P){ int len_p = strlen(P); int len_t = strlen(T); int B[256] = {0}; for(int i = 0 ; i < 256 ; i++) B[i] = len_p; for(int i = 0 ; i < len_p ; i++) B[P[i]] = len_p - i - 1; int pos = 0; while(pos <= len_t 阅读全文

posted @ 2013-05-29 14:38 1957 阅读(703) 评论(0) 推荐(0) 编辑

2013年5月28日

摘要: 虽然可能不太实用,但是思想去很厉害。先处理模式串P,得到一个表B,记录字母表中每个字母位的掩码bm....b1,如果P_j=c 那么掩码B[c]的第j位位置为1,否则为0。匹配过程就是对D的更新D = ((D << 1) | 1) & B[T[i]]#include <string.h>#include <stdio.h>const int maxn = 1000;int shift_and(char* T , char* P){ unsigned int B[256] = {0}; unsigned int D = 0; for(int i = 0 阅读全文

posted @ 2013-05-28 13:59 1957 阅读(312) 评论(0) 推荐(0) 编辑

上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 22 下一页