我在Rich的视频中看到了以下关于序列http://blip.tv/file/734409的示例, 大约需要33-36分钟:
(first "abcd") => \a
Run Code Online (Sandbox Code Playgroud)
现在,他说这扩展到(有点):
(first "abcd") => (first (seq "abcd")) => (first '(\a \b \c \d))
Run Code Online (Sandbox Code Playgroud)
因此,它看起来像一个O(N)
操作,因为正在创建字符串的完整副本.首先,如果a String
是不可变的,那为什么要复制?(编辑:根据答案,它可能不是;只是在打印时看起来那样.)其次,假设first
在Java中的其他东西上操作是可变的,比如一个整数的链表.应该first
以懒惰的方式行事(例如,首先创建一个持久的序列)?将它立即评估并保存是否有意义?我认为,这将是一种破坏漂亮抽象的黑客,但能快速完成工作.当你打电话时(seq "abcd")
,你不知道它将如何使用.当你打电话给first
a时seq
,你知道该怎么做.可是,当你调用first
上"abcd"
,我认为执行一个hacky和快速"抓住并保存它",方法比抓住一个序列然后调用更好first
.
我错过了什么吗?Rich Hickey跳过了一些步骤吗?
如果我有疑问,请告诉我.谢谢!
我知道如何为2的权力做到这一点,所以这不是我的问题.
例如,如果我想使用位移而不是整数除法找到5%的数字,我将如何计算?
因此,我可以做(x*100 >> 11)而不是(x*20/19).现在这不对,但它很接近,我通过反复试验来到它.我如何确定最可能使用的精确班次?
直到现在,当我有一行示例时
上一页---页面宽度---下一页
我使用了一个带有2个孩子的容器div,样式为float:left&float:right
我认为它可以从一个段落行完成,其中span可能是这样的:
<p><span class="s-left">previous</span><span class="s-right">next</span></p>
Run Code Online (Sandbox Code Playgroud)
我试过CSS:
span.s-left { text-align: left; }
span.s-right { text-align: right; }
Run Code Online (Sandbox Code Playgroud)
但那没有做到..
我正在尝试将.MID文件读入Java程序,并希望将每个音符/和弦分开,以便在某种UI上显示它们.我在Java中使用Sequencer API并没有太多运气,并且尝试直接使用MidiFileReader对我来说也不起作用.我会附上我在这里使用的代码,如果有人想看到的话:
package miditest;
import java.io.File;
import java.io.IOException;
import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;
public class Main {
public static void main(String[] args) throws InvalidMidiDataException, IOException, MidiUnavailableException{
Sequence sequence = MidiSystem.getSequence(new File("test.mid"));
// Create a sequencer for the sequence
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.open();
sequencer.setSequence(sequence);
// Start playing
sequencer.start();
}
}
Run Code Online (Sandbox Code Playgroud) 有没有办法可以访问自定义上下文处理器中视图传递的当前上下文,这样我可以添加缺少的变量,如果我想要而不是覆盖现有变量?
我想要实现的目标:
我建我的网址是这样的/ city_slug /我要检查,如果城市变量在上下文中已经存在,否则我想城市添加到我的上下文(可使用存储在会话变量中最后使用的城市,否则默认一些城市,可能甚至设置会话变量以供下次使用.)
我觉得这是很常见的问题,你们怎么解决呢?
我正在尝试为现有模型创建一个编辑页面(已保存到db).表单对象期望multidict实例填充其字段.这就是我所拥有的:
# the model - assumes Flask-SQLAlchemy
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), unique=True)
def __init__(self, name=name):
self.name = name
# the form - assumes Flask-WTF ext.
from flask.ext.wtf import Form, TextField, Required, BooleanField
class PersonForm(Form):
name = TextField('name')
## the view
@app.route('/person/edit/<id>/', methods=['GET', 'POST'])
def edit_person(id):
person = Person.query.get(id)
if person:
form = PersonForm(person) #<-- raises error
return render_template('edit_person.html', form=form)
Run Code Online (Sandbox Code Playgroud)
我可以将表单中的每个字段分配给模型的每个字段(form.data['name'] = person.name, etc...)
,但对于大型模型来说这似乎是多余的.我有什么捷径可走吗?
当我们通过重新分配内存时realloc()
,先前的内容是否被覆盖?我正在尝试创建一个程序,每次我们输入数据时重新分配内存.
请通过realloc告诉我有关内存分配的信息,例如编译器依赖吗?
根据CAP定理,分布式Erlang系统不可能同时提供以下三种保证:
分布式Erlang系统可以支持零个,一个或两个保证.
使用Erlang和OTP,如何实现每个保证?大多数分布式Erlang应用程序为更高级别的A和P做出实际选择,并满足"最终一致性".似乎Erlang本身旨在支持分布式(P),容错(A),软实时,不间断的应用程序.
编程语言(Erlang),运行时系统(ERTS)和库集(OTP)是为构建分布式容错应用程序而设计的; 我如何做三个定义分布式容错应用程序的东西?
我需要能够识别日期字符串.如果我无法区分月份和日期(例如12/12/10)并不重要,我只需要将字符串分类为日期,而不是将其转换为Date对象.所以,这实际上是一个分类而不是解析问题.
我会有一些文字,例如:
"bla bla bla bla 12 Jan 09 bla bla bla 01/04/10 bla bla bla"
我需要能够识别每个日期字符串的开始和结束边界.
我想知道是否有人知道任何可以做到这一点的java库.到目前为止,我的google-fu还没有提出任何建议.
更新:我需要能够识别出最广泛的表示日期的方法.当然,天真的解决方案可能是为每种可想到的格式编写一个if语句,但是模式识别方法,使用训练有素的模型,理想情况下是我所追求的.
我有一个包含多个值的字典,我想保持不变,但我需要在不同的键中旋转它们.是否有内置功能或外部库可以做到这一点,或者我自己写完整个东西会更好吗?
我想要做的例子:
>>> firstdict = {'a':'a','b':'b','c':'c'}
>>> firstdict.dorotatemethod()
>>> firstdict
{'a':'b','b':'c','c':'a'}
>>>
Run Code Online (Sandbox Code Playgroud)
我不必按顺序排列,我只需要每次都将值与不同的键相关联.