TLDR:如何在Mma 7中将CapsLock转换为"ShortNameDelimiter"?
我喜欢我的mma笔记本中的漂亮文本,并且经常定义函数f[\[Alpha]_] =...
以匹配我正在使用的确切方程.因此,它涉及很多Esc- letter- Esc序列,并且Esc每隔一个笔划达到打破我的打字流程.
现在,CapsLock关键很少使用(我不记得我最后一次需要它),但是方便放置(你的小指就在那里!).它重新映射到Esc在vim
为我创造了奇迹,我想知道是否有办法做到在同一个mma
,而不必修改系统的键盘布局.
我尝试KeyEventTranslations.tr
通过添加以下内容进行编辑EventTranslations[{...
Item[KeyEvent["CapsLock"], "ShortNameDelimiter"]
Run Code Online (Sandbox Code Playgroud)
但那没有效果.还有另一种方法吗?是CapsLock
不正确的标识?如果它有帮助,我在Mac上使用Mma7学生版.
我在路径myClass.m
中的包文件夹+myPack
中有一个类文件.类文件的一个简单示例是:
classdef myClass
properties
prop
end
methods
function obj = myClass(x)
obj.prop = x;
end
end
end
Run Code Online (Sandbox Code Playgroud)
现在,如果我直接调用该方法并使用完整包名访问该属性,即:
x = myPack.myClass(2).prop;
Run Code Online (Sandbox Code Playgroud)
x = 2
正确返回.现在,如果我通过导入此类(而不是使用包名称)尝试相同的操作:
import myPack.myClass
y = myClass(2).prop
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:
无法索引静态方法或构造函数调用.不要使用任何其他索引或点引用来跟随对静态方法或构造函数的调用.
为什么这在第一种情况下工作而不是第二种情况?据我所知,import
一个类主要允许一个人使用没有长包名的类名(以及其他考虑因素).这两个导致此错误的区别是什么,我该如何解决?
我正在通过Learn You A Haskell工作,以便快速掌握Haskell的基础知识.我对函数式编程和模式匹配都很满意,但后者更像是Mathematica如何做到这一点.
本着head
第4.1章中幼稚实施的精神,我进行了一个天真的实现last
:
last1 :: [a] -> a
last1 (_:x:[]) = x
Run Code Online (Sandbox Code Playgroud)
但是,调用last1 [1,2,3,4]
给出了错误Exception: ... Non-exhaustive patterns in function last1
.我理解这个错误意味着指定的模式并不涵盖所有可能的输入,通常,需要一个包罗万象的模式(我没有提供).但是,我不确定为什么我的输入会出现此错误.
问题1:我(我的错误方法)的理解是第一个元素被捕获,_
其余元素被分配x
,这不是我想要的.但是,这不应该给出类型错误,因为我指定了[a] -> a
,但x
现在是一个列表?
请注意,这不是关于如何编写工作last
函数 - 我知道我可以将其编写为(以及其他可能性)
last2 :: [a] -> a
last2 [x] = x
last2 (_:x) = last2 x
Run Code Online (Sandbox Code Playgroud)
问题2:在更好地理解Haskell中的模式匹配的同一主题中,我如何使用模式匹配来挑选最后一个元素,或者更一般地,n
从给定列表中选择th元素,比方说,[1..10]
?
这个答案表明你可以使用与ViewPatterns
扩展名的模式匹配来绑定最后一个元素,但似乎很奇怪没有类似的"简单"模式.head …
我正在构建一个使用Flask和Scrapy的应用程序.访问我的应用程序的根URL时,它会处理一些数据并显示它.另外,如果它还没有运行,我也想(重新)启动我的蜘蛛.由于我的蜘蛛需要大约1.5小时才能完成运行,因此我使用线程将其作为后台进程运行.这是一个最小的例子(你还需要testspiders):
import os
from flask import Flask, render_template
import threading
from twisted.internet import reactor
from scrapy import log, signals
from scrapy.crawler import Crawler
from scrapy.settings import Settings
from testspiders.spiders.followall import FollowAllSpider
def crawl():
spider = FollowAllSpider(domain='scrapinghub.com')
crawler = Crawler(Settings())
crawler.configure()
crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
crawler.crawl(spider)
crawler.start()
log.start()
reactor.run()
app = Flask(__name__)
@app.route('/')
def main():
run_in_bg = threading.Thread(target=crawl, name='crawler')
thread_names = [t.name for t in threading.enumerate() if isinstance(t, threading.Thread)]
if 'crawler' not in thread_names:
run_in_bg.start() …
Run Code Online (Sandbox Code Playgroud) 我一直试图阅读以下网站的来源:
import urllib2
from BeautifulSoup import BeautifulSoup
url = 'http://www.myurl.com/'
headers = {'User-Agent' : 'Mozilla/5.0'}
request = urllib2.Request(url,None,headers)
soup = BeautifulSoup(urllib2.urlopen(request).read())
Run Code Online (Sandbox Code Playgroud)
我进一步缩小范围scriptResults = soup('script',{'type' : 'text/javascript'})
.其内容的样本如下:
scriptResults = [<script type="text/javascript"> ... </script>,
...,
<script type="text/javascript">
//comment 1
$(function () {
//comment 2
var True = true, False = false;
func.start({
token1 : "...",
token2 : [...],
...
tokenN : ["value1","value2",...,"valueK"],
...
})
})
</script>,
...
]
Run Code Online (Sandbox Code Playgroud)
现在我有兴趣提取值tokenN
.我知道它在整个文档中是独一无二的,并且存在于我正在尝试阅读的所有网页中.此外,结果的数量scriptResults
可能会有所不同,令牌的数量也会有所不同,因此我无法使用位置索引来访问它.另外,我意识到它BeautifulSoup
是一个HTML解析器,并不解析JS.我如何使用正则表达式提取此信息?
如果没有一种简单的方法可以获得所有这些,以下可能是妥协.大多数的的 …