p*****2 发帖数: 21240 | 1
想了一下,还是应该用actors
import akka.actor._
case class Foo(times: Int)
case class Bar(times: Int)
case object Foo
case object Bar
class FooActor(barActor: ActorRef) extends Actor {
def receive = {
case Foo(times) if times>0 =>
print(Foo)
barActor ! Bar(times)
}
}
class BarActor() extends Actor {
def receive = {
case Bar(times) =>
println(Bar)
sender ! Foo(times-1)
}
}
object test extends App{
val system = ActorSystem()
val barActor = system.actorOf(Props(new... 阅读全帖 |
|
p*****2 发帖数: 21240 | 2 def isUTF(xs: List[String]):Boolean = {
xs match {
case Nil => true
case head::tail => head.toList match {
case '0'::_ => isUTF(xs.tail)
case '1'::'0'::_ => false
case _ =>
val len = (x: String) => x.prefixLength(_ == '1')
val l = len(head)
val rest = tail.take(l-1)
rest.size == l-1 && rest.forall(len(_)==1) && isUTF(xs.drop(l))
}
}
} |
|
o***c 发帖数: 32 | 3 我同学两周前onsite被考到了,不过此题线段树写起来也方便。
#define Maxn 10000
int val[1010];
class Segment_Tree {
private:
struct Node {
int left,right,cover;
};
Node Tree[Maxn];
int Number, c, d;
public:
void build(int Now, int a,int b) {
Tree[Now].left=a;
Tree[Now].right=b;
if(b-a>=1) {
int mid=(a+b)>>1;
Tree[Now].left=a;
build(2*Now+1 , a,mid);
Tree[Now].right=b;
build(2*Now+2,mid+1, b);
Tree[Now]... 阅读全帖 |
|
I**********s 发帖数: 441 | 4 代码如下:
#include
#include
using namespace std;
struct Node {
int val;
Node * left;
Node * right;
Node(int v): val(v), left(NULL), right(NULL) {}
};
void output(stack s) {
if (s.empty()) return;
int tmp = s.top();
s.pop();
output(s);
cout << tmp << " ";
}
void printT(Node * n, stack & s) {
if (n == NULL) return;
s.push(n->val);
if (n->left == NULL && n->right == NULL) {
output(s);
cout << endl;
} else {... 阅读全帖 |
|
|
m*******5 发帖数: 15 | 6 来自主题: JobHunting版 - 刷了半天题 Java:
public class PositiveIterator {
public static void main(String[] args) {
List list = new ArrayList();
for(int i = 0; i < 10; i++) {
list.add(i);
list.add(-i);
}
System.out.println(list.toString());
PositiveIterator posIter = new PositiveIterator(list.iterator());
for(int i = 0; i < 100; i++)
System.out.println(posIter.hasNext());
while(posIter.hasNext()) {
S... 阅读全帖 |
|
m*******5 发帖数: 15 | 7 来自主题: JobHunting版 - 刷了半天题 Java:
public class PositiveIterator {
public static void main(String[] args) {
List list = new ArrayList();
for(int i = 0; i < 10; i++) {
list.add(i);
list.add(-i);
}
System.out.println(list.toString());
PositiveIterator posIter = new PositiveIterator(list.iterator());
for(int i = 0; i < 100; i++)
System.out.println(posIter.hasNext());
while(posIter.hasNext()) {
S... 阅读全帖 |
|
d*******8 发帖数: 23 | 8 版中大多数面经都是针对北美new graduate的, 在此贡献一下本人国内找北美工作的一
些经验吧, 也算是答谢mitbbs上分享面经的朋友对我的帮助. 更希望攒攒人品能够抽到
h1b签证 :)
[背景]
国内4年工作经验. 硕士毕业后一直在某做存储的外企工作.
14年7月份开始有出国打算并开始准备.
[准备]
在工作之余每天坚持至少刷3~4道算法题, 并关注各个公司的blog及github上的开源项
目.
1. 算法
Leetcode自然不必说, 必刷. 先是用了将近两个月的时间把leetcode刷了1.5遍, 然
后每次电面和onsite面之前挑一些觉得做得不好的题再刷.
其次就是看geeksforgeeks上题. 这是个老印host的网站, 但是上面的题目分类明晰
,有很多分类底下的题目非常好, 比如DP (印象最深的就是m个鸡蛋n层楼测在哪层楼鸡
蛋会被摔碎的问题)和graph (印象最深的就是单源/多源最短/最长路径和欧拉环). 每
天看一下还是能学到不少新鲜的知识的.
其他就没有了, career up和glass door也断断续续看了一些, ... 阅读全帖 |
|
d*******8 发帖数: 23 | 9 版中大多数面经都是针对北美new graduate的, 在此贡献一下本人国内找北美工作的一
些经验吧, 也算是答谢mitbbs上分享面经的朋友对我的帮助. 更希望攒攒人品能够抽到
h1b签证 :)
[背景]
国内4年工作经验. 硕士毕业后一直在某做存储的外企工作.
14年7月份开始有出国打算并开始准备.
[准备]
在工作之余每天坚持至少刷3~4道算法题, 并关注各个公司的blog及github上的开源项
目.
1. 算法
Leetcode自然不必说, 必刷. 先是用了将近两个月的时间把leetcode刷了1.5遍, 然
后每次电面和onsite面之前挑一些觉得做得不好的题再刷.
其次就是看geeksforgeeks上题. 这是个老印host的网站, 但是上面的题目分类明晰
,有很多分类底下的题目非常好, 比如DP (印象最深的就是m个鸡蛋n层楼测在哪层楼鸡
蛋会被摔碎的问题)和graph (印象最深的就是单源/多源最短/最长路径和欧拉环). 每
天看一下还是能学到不少新鲜的知识的.
其他就没有了, career up和glass door也断断续续看了一些, ... 阅读全帖 |
|
g******g 发帖数: 9 | 10 写了一下 第2题, 不知道对不,
void getSubstract(TreeNode root, List list){
if (root == null){
list.add(0);
return;
}
getSubstract(root.left, list);
int leftSum = list.get(list.size() - 1);
getSubstract(root.right, list);
int rightSum = list.get(list.size() - 1);
int left = root.left == null? 0:root.left.val;
int right = root.right == null? 0:root.right.val;
list.add(leftSum + rightSum + 2 * (left + right) - root.val);
}
最后 return list. |
|
b**********5 发帖数: 7881 | 11 void printAllRootToLeaf(TreeNode root) {
}
void helper(TreeNode root, StringBuilder sb) {
if (root == null) return;
sb.append(root.val);
helper(root.left, sb);
helper(root.right, sb);
sb.remove(sb.length()-1);
}
=> to iterative+stack
void helper(TreeNode root) {
if (root == null) return;
while (root != null) {
sb.append(root.val);
stack.push(root);
root = root.left;
}
while (!stack.isEmpty()) {
TreeNode n = stack.pop();
... 阅读全帖 |
|
b**********5 发帖数: 7881 | 12 恩, 我fix不了了, 你fix吧。 我只想出把string也push到stack上, can u think
of something?
void printAllPath(Node root) {
Stack s1 = new Stack<>..
Stack s2 ...
s1.push(root); s2.push(root.val);
while (!s1.isEmpty()) {
Node n = s1.pop();
String s = s2.pop();
if (n.left == null && n.right == null) {
print s;
}
if (n.right != null) {
s1.push(n.right);
s2.push(s + n.right.val);
}
if (n... 阅读全帖 |
|
k****r 发帖数: 807 | 13 recursive,
用list《List《Integer》》 res纪录结果,
用一个mostleft记录目前最左边的index,
如果目前level小于mostleft,or超出res大小,插最前面,或最后面新的list:
static int mostLeft = 0;
public static void printTreeInVerticalOrder(TreeNode root) {
List> res = new ArrayList<>();
//res.add(new ArrayList());
printHelper(root, 0, res);
printTree(res);
}
public static void printHelper(TreeNode root, int curr, List
Integer>> res) {
if (root == null) return;
els... 阅读全帖 |
|
k****r 发帖数: 807 | 14 recursive,
用list《List《Integer》》 res纪录结果,
用一个mostleft记录目前最左边的index,
如果目前level小于mostleft,or超出res大小,插最前面,或最后面新的list:
static int mostLeft = 0;
public static void printTreeInVerticalOrder(TreeNode root) {
List> res = new ArrayList<>();
//res.add(new ArrayList());
printHelper(root, 0, res);
printTree(res);
}
public static void printHelper(TreeNode root, int curr, List
Integer>> res) {
if (root == null) return;
els... 阅读全帖 |
|
c*******4 发帖数: 51 | 15 忘了是怎么样的了,这个是重新写的,想法大概是这样,没检查过,可能有问题,再交
流吧
struct Node{
int val;
vector next;
};
int r(Node * root, int counter)
{
if(root->next.size()==0) return counter;
int maxi=counter;
for(int i=0; inext.size(); i++)
{
if(root->next[i]->val==root->val+1)
maxi=max(maxi, r(root->next[i], counter++));
else
maxi=max(maxi, r(root->next[i], 1));
}
return maxi;
}
int result(Node * root)
{
if(!root) return 0;
return r(root... 阅读全帖 |
|
f*y 发帖数: 876 | 16 post-order travesal,return the path to the current max in the subtree.
public static void maxPath(TreeNode root) {
if (root == null) return;
ArrayList path = get(root);
System.out.println(path);
}
public static ArrayList get(TreeNode root) {
if (root == null) return null;
ArrayList left = get(root.left);
ArrayList right = get(root.right);
ArrayList list;
if (left == null && ri... 阅读全帖 |
|
k******4 发帖数: 7 | 17 你想复杂了。这题不用看左右两个子树的返回值,只要一路DFS下去,看到比目前最大
值大的点,更新一下path就可以了。的确更新path是要O(LgN)的时间,在非最差情况下
可以忽略不计。
dfs(TreeNode* node, vector& path, int& maxNode, vector&
maxNodePath) {
path.push_back(node->val);
if (node->val > maxNode) {
maxNode = node->val;
maxNodePath = path;
}
if (node->left) dfs(node->left, path, maxNode, maxNodePath);
if (node->right) dfs(node->right, path, maxNode, maxNodePath);
path.pop_back();
} |
|
b******b 发帖数: 713 | 18 Assuming the numbers is in a list, e.g. ArrayList, below method
generate the next number in the list:
void next(ArrayList current)
{
int carryOver = 0;
current.set(current.size()-1, current.get(current.size()-1) + 1);
for (int i = current.size() - 1; i >= 0; i--)
{
int val = current.get(i);
int newVal = (val + carryOver) % 3;
carryOver = (val + carryOver) / 3;
current.set(i, newVal);
if (carryOver == 0) break;
}
if (carryOver > 0)... 阅读全帖 |
|
l******s 发帖数: 3045 | 19 两个Queue也可以吧,Queue 和 Queue,保持两个Queue同步就行了
。
It's accepted by leetcode.
private IList allPath(TreeNode root){
Queue queue = new Queue();
Queue qStr = new Queue();
IList result = new List();
if(root == null) return result;
queue.Enqueue(root); qStr.Enqueue(root.val.ToString());
while(queue.Count != 0){
TreeNode cur = queue.Dequeue();
string curStr = qStr.Dequeue();
if(cur.le... 阅读全帖 |
|
T*****n 发帖数: 82 | 20 public class Solution {
int max = Integer.MIN_VALUE;
public int maxPathSum(TreeNode root) {
maxSum(root);
return max;
}
private int maxSum(TreeNode root){
if(root == null){
return 0;
}
int left = maxSum(root.left);
int right = maxSum(root.right);
max = Math.max(max, root.val + left + right);
int ret = Math.max(root.val + left, root.val + right);
return r... 阅读全帖 |
|
d*******n 发帖数: 263 | 21 二叉树每个节点有个非负整数val,所有节点的val的和等于二叉树节点总数。
现在要把二叉树调整成每个节点的val都是1,每个节点一次可以向自己的相邻节点移动
1,求最少步骤的调整过程。 |
|
j*****l 发帖数: 1624 | 22 来自主题: JobHunting版 - G一个新题 你不是说给了坐标点和value?
他非说无穷,你就想,已经给了的坐标点怎么弄成无穷?
所以就记个当前最大值吧。maxRow, maxCol, 总能看成当前的极限吧。要是以后再新给
,咱在扩展就行了吧。
比如说
public void update(int row, int col, int val) {
if (maxRow == 0 || maxCol == 0) return;
hash_val=hash_func(row,col);
int delta = val - nums_hashtable[hash_val];
nums_hashtable[hash_val] = val;
for (int i = row + 1; i <= maxRow; i += i & (-i)) {
for (int j = col + 1; j <=maxCol; j += j & (-j)) {
ij_hash_val=hash_func(i... 阅读全帖 |
|
x**********g 发帖数: 391 | 23 【 以下文字转载自 Switzerland 讨论区 】
发信人: xiongtailang (熊太郎), 信区: Switzerland
标 题: Re: 【White Christmas】Last Christmas in Switzerland
发信站: BBS 未名空间站 (Mon Dec 26 09:57:58 2011, 美东)
上了十大推荐,那就再多贴2张图吧。版主要多发包子,发大包子哈 ^O^
lz是个胆小怕死又不好学的主儿,所以虽然每每看到滑雪者们的飒爽英姿总是心生无限
羡慕和向往,但自己在Flumserberg和Taufers浅尝辄止2次后,遂从此作罢。
翻出几张和雪上运动有关的老照片,是和同事在Vals山上玩小雪橇和tube。虽然不是在
圣诞,但就算是应个white的景了,也借此缅怀lz难得的一段历险。
第一张sledge,大家从Vals山顶鱼贯而下,因为人太多,路上还有车,另一边又是悬崖,
半路上发现少了个人,以为掉下山了,后来发现是回去找丢的相机套了。
第二张是坐在那种像donut一样的tube里滑下来,这是lz劫后余生躺在滑道那慨叹。因为
lz的tube在图... 阅读全帖 |
|
d**********o 发帖数: 1321 | 24 hw3b c-.y file
上面这一楼贴了载止hw3b deadline时我match的结果(也就是老师可以以这些不match
的ERROR为借口不给后来我补上的成绩),但是因为当时我还是没有写完,后来感恩节
期间就接着又写了一些,而且hw5是based on hw3 & hw3b的基础上(当我hw5是based
on更好的hw3的结果时,我应该可以得更多的分吧)。
hw4因为写得比较顺利,就不曾保留任何交上去作业的output,没有什么一目了然的结
果是我可以贴在这里的。原本我是想要把自己最的一次作业hw5贴出来的,但那已经是
一个完整的compiler,而且以后我还需要用自己的course project来找工作,所以一定
就不贴最终结果了。那就贴一个hw3b的c-.y文件吧,它集中的hw1、hw2、hw3、 hw3b的
结果,是我自己hw3b *.y文件的最完整版本。这些作业里面也有很多机关一一人为增加
的难度,比如那六七个IO相关的function,不仅traverse tree、build syntax tree的
时候会成为一个考点(把它们作为一个node连在syntax... 阅读全帖 |
|
d**********o 发帖数: 1321 | 25 hw3b c-.y file
上面这一楼贴了载止hw3b deadline时我match的结果(也就是老师可以以这些不match
的ERROR为借口不给后来我补上的成绩),但是因为当时我还是没有写完,后来感恩节
期间就接着又写了一些,而且hw5是based on hw3 & hw3b的基础上(当我hw5是based
on更好的hw3的结果时,我应该可以得更多的分吧)。
hw4因为写得比较顺利,就不曾保留任何交上去作业的output,没有什么一目了然的结
果是我可以贴在这里的。原本我是想要把自己最的一次作业hw5贴出来的,但那已经是
一个完整的compiler,而且以后我还需要用自己的course project来找工作,所以一定
就不贴最终结果了。那就贴一个hw3b的c-.y文件吧,它集中的hw1、hw2、hw3、 hw3b的
结果,是我自己hw3b *.y文件的最完整版本。这些作业里面也有很多机关一一人为增加
的难度,比如那六七个IO相关的function,不仅traverse tree、build syntax tree的
时候会成为一个考点(把它们作为一个node连在syntax... 阅读全帖 |
|
g*****y 发帖数: 33 | 26 pizza 是好东西,热量足,脂肪高,吃了心里踏实。不论你是希望长出胳膊上的肌
肉还是可爱的咪咪,pizza都是很好的选择。我评论的这些都是在Telegraph 附近,
我开车能到的地方。
南北两家La Val's, 虽然同叫La Val's, 但做出的pizza有一定差别.北面的就别去
吃了, 特别是所谓的迷你小饼, cheese给的不够多,口感很不好. 南面的 La Val's
在Durant上, 那是学校附近最ghettoish的地方, 里面那个负责卖饮料的五十多岁
的白人叔叔(不戴眼镜的那个)是我以前的邻居,他绝对是个punk...丫这一生,伤了无
数女人的心...,他经常裹着条浴巾在楼里晃来晃去, 身材保持的巨好,卷曲的长发
肆意的流淌在健壮的肩膀上, oh my gosh, he's like, totally cute..这是我一
个女邻居说的
说到伯克利的pizza 店,就不能不提 Blondie's 和 Fat Slice...这两家pizza店位
于伯克利的心脏,隔Telegraph相望。 三块多一点,你可以吃到一个顶料(topping
)的pizza,和一杯饮料, |
|
f**c 发帖数: 629 | 27 I am new to database. Could any one help on this easy query? Thanks alot.
Given the following SQL table:
create table myTable (
id int not null,
val varchar(2) not null
);
With values:
id val
-------
1 b
2 c
3 a
4 b
5 c
Write a single SQL query in MySQL 3.23 which will output the
following result, which is a list of records with equal 'val'
fields:
+-----+-----+-----+
|
|
B*****g 发帖数: 34098 | 28 rowid=1又没有被delete,不会被lock。其实你关于rowid的解释挺好,要是需要更深了
解的同学可以看tom的link,写的很清楚,还有例子。至于楼主的问题,最简单就是加
一个pk。这些rowid讨论和问题其实不搭边,说的太复杂反而容易把新手搞糊涂。
***********************************
--Test for delete lock
CREATE TABLE test_delete (ID NUMBER(1), VAL VARCHAR2(1));
INSERT INTO test_delete VALUES(1, 'A');
INSERT INTO test_delete VALUES(2, 'A');
COMMIT;
SELECT * FROM test_delete;
DELETE FROM test_delete t1
WHERE EXISTS (SELECT * FROM test_delete t2 WHERE t2.val = t1.val AND t1.
rowid > t2.rowid);
-- No commit here... 阅读全帖 |
|
j*******n 发帖数: 4 | 29 最近有个需求,就是要给几个http request写个R language的SDK来发出这好几个http
request。
要写的http request太多了,而且end point还在调整,所以打算走代码生成的路
试了一下这个package的R-sdk generator,确实能用,打算就用这个:
https://github.com/Kong/httpsnippet
在尝试用scala来parse Postman collection echo endpoint那37 个request做test
cases。
这里有个网站,把postman collection echo endpoint的json export出来,复制粘贴
,就可以生成case class:
https://transform.tools/json-to-scala-case-class
但是要怎么要才能处理 整个json呢?因为postman json里面的case class存在
optional,试了play json,感觉没搞出来,有大牛愿意给个代码指导一下吗?
这里提供一个driver code:
... 阅读全帖 |
|
c****e 发帖数: 90 | 30 Try the following code and you'll see why.
For primitive types, java just copy the value
(instead of passing the reference of that object)
when passing parameters.
class t {
private static void modify(int val)
{
val += 1;
System.out.println("Value of integer inside: "+val);
}
public static void main(String []args){
int t = 0;
modify(t);
System.out.println("Value of integer outside: "+t);
}
}
number
thread
is |
|
l******n 发帖数: 577 | 31 Here I post the an example from thinking in java:
If you blindly apply the idea of atomicity, you see that getValue( ) in the
following program fits the description:
//: concurrency/AtomicityTest.java
import java.util.concurrent.*;
public class AtomicityTest implements Runnable {
private int i = 0;
public int getValue() { return i; }
private synchronized void evenIncrement() { i++; i++; }
public void run() {
while(true)
evenIncrement();
}
public static voi... 阅读全帖 |
|
r****y 发帖数: 26819 | 32 写法有bug,必须改为
if ((val > 0) && (val == val % 99))
而且这么写,java也一样,可以照抄 |
|
t*i 发帖数: 72 | 33 都是基本语法问题,见笑了
1. class day
{
explicit day(int d): val(d) {} --请问这句后便加 :val(d)是啥意思啊
int val;
}
2. widget& widget::operator=(const widget& rhs)
请问这里为啥要加widget&
{
delete pb;
pb= new bitmap (*rhs.pb);
return *this
}
|
|
N********n 发帖数: 8363 | 34 int bsch (int[] a, int k, int val)
{ int l = 0, r = a.length - 1;
while (l < r)
{ int m = (l + r) / 2;
if (a[(m + k) % a.length] < val)
l = m + 1;
else if (a[(m + k) % a.length] > val)
r = m - 1;
else
return (m + k) % a.length; // found
}
return -1; // not found
} |
|
P*****f 发帖数: 2272 | 35 k 是未知的
int bsch (int[] a, int k, int val)
{ int l = 0, r = a.length - 1;
while (l < r)
{ int m = (l + r) / 2;
if (a[(m + k) % a.length] < val)
l = m + 1;
else if (a[(m + k) % a.length] > val)
r = m - 1;
else
return (m + k) % a.length; // found
}
return -1; // not found
} |
|
N***m 发帖数: 4460 | 36 昨天看书,书上说
class A{
string val;
public:
A(const string & s):val(s){} // 比 A(const string &s){val=s;}快
};
我试了一下,感觉根本没快啊。是不是compiler优化了阿? |
|
X****r 发帖数: 3557 | 37 Make val private, add get/set accessors for val, and override them
in Decorator class to read/write the val of its localComponent. |
|
y**b 发帖数: 10166 | 38 再问一个问题,如果对__float128重载>>, 比如
std::istream& operator >> (std::istream& is, __float128& number) {
double val;
is >> val;
number = (__float128) val;
return is;
}
就没有必要再对ifstream重写这个函数了吧?因为ifstream继承于istream,
想确认一下。
多谢耐心回复。 |
|
X****r 发帖数: 3557 | 39 First, you can't deduce a template parameter from return type.
Second, returning a vector by value is neither efficient nor flexible,
e.g.
what if you want to accumulate histogram?
Third, you don't have to specify vector as input or output.
So what you want is probably something like the following:
template
void histo(const V& vals, const MAPPER& pf, C& result) {
typename V::const_iterator it;
for (it = vals.begin(); it != vals.end(); ++it) {
resu... 阅读全帖 |
|
c******o 发帖数: 1277 | 40 看看kafka的source code, 哪儿像scala?
https://github.com/apache/kafka/blob/0.8.2/core/src/main/scala/kafka/api/
ApiUtils.scala
def readShortString(buffer: ByteBuffer): String = {
val size: Int = buffer.getShort()
if(size < 0)
return null
val bytes = new Array[Byte](size)
buffer.get(bytes)
new String(bytes, ProtocolEncoding)
}
def writeShortString(buffer: ByteBuffer, string: String) {
if(string == null) {
buffer.putShort(-1)
} else {
val encodedString ... 阅读全帖 |
|
d******e 发帖数: 2265 | 41 开始试水 akka-slick-spray-play 技术stack. 大吃一惊。
先看fsm.
case class Supplier(id: Option[Int],name: String,desc: String)
case class SimpleSupplier(name: String,desc: String)
trait Suppliers extends Profile{
import profile.api._
class Suppliers(tag: Tag) extends Table[Supplier](tag, "SUPPLIERS") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def name = column[String]("userID")
def desc = column[String]("last_name")
def * = (id.?, name, desc) <> (Supplier.tupled, Supplier.unapply... 阅读全帖 |
|
c******o 发帖数: 1277 | 42 从下面的code 看出。
map能对一个数据(一个List, 一个Option, 一个Future) 进行操作。
applicative (ap) 能对多个数据进行操作。
monad能对对多个数据进行操作的同时,根据数据的内容动态改变操作流程。
基本上functor (map),applicative functor (ap), monad (flatMap)的区别就是这
些。
object test {
def oneVarFunc: Int => Int = {
_ + 1
}
def twoVarFunc: (Int, Int) => Int = {
_ + _
}
def optionap[A,B](a: Option[A])(f: Option[A => B]): Option[B] =
f.flatMap(t1 => a.flatMap(t2 => Some(t1(t2))))
val x1 = Some(1)
val x2 = Some(2)
val x3 = None
//functor
def test... 阅读全帖 |
|
d******e 发帖数: 2265 | 43 还在讨论。俺们草蜢快类型的根本不管什么术语。上个 code就明白了。以future为例:
def temperatureOkay(water: Water): Future[Boolean] = Future {
(80 to 85).contains(water.temperature)
}
val nestedFuture: Future[Future[Boolean]] = heatWater(Water(25)).map {
water => temperatureOkay(water)
}
val flatFuture: Future[Boolean] = heatWater(Water(25)).flatMap {
water => temperatureOkay(water)
}
val acceptable: Future[Boolean] = for {
heatedWater <- heatWater(Water(25))
okay <- temperatureOkay(heatedWater)
} yield okay
网上的例子。简单说,为了... 阅读全帖 |
|
w****w 发帖数: 521 | 44 有点入门了,exception还要处理一下。这里实际使用spark的人看来不多。
import my.pdf._
import collection.JavaConverters._
import collection.mutable._
def extract_func ( row: (String, org.apache.spark.input.PortableDataStream)
) =
{
val stripper = new MyStripper()
val extractor = new MyReportExtractor()
extractor.setText(stripper.getText(row._2.open));
row._2.close
extractor.getContent().asScala
}
val file_rdd = sc.binaryFiles ("/path/test/*.pdf")
file_rdd.flatMap(extract_func(_)).zipWithIndex.map(_._1)... 阅读全帖 |
|
l*l 发帖数: 225 | 45 很笨的办法, 我以前的 script.
#!/bin/sh
for VAL in `ls *`
do
NEW=`echo $VAL | tr [a-z] [A-Z]`
mv $VAL $NEW
done |
|
A*****a 发帖数: 1091 | 46 应该用:
%macro test;
%do i=1 %to 10;
%let val=%sysfunc(putn(&i,z2.));
data abc20&val.;
set in.abc&val.;
run;
%end;
%mend;
... 阅读全帖 |
|
d*b 发帖数: 21830 | 47 人做事,有没有talent无所谓,只要能起早摸黑,总会有收成的。但3k这人还是比较懒
的。
随便举个例子,比如发包子,我有一个100个id的名单,要每人发一个包子,怎么发?
现在有3种办法。一是一个一个手工发,还有就是交给什么伪币中心发,高级点的就是
自己写python发。这些个其实办法本质上其实都一样,都不解决实质问题。
要解决这个问题其实并不难,你写个csv(逗号分隔的list)文件,贴到发包子窗口就可
以了。ebay什么的blocklist也这么做,改论坛的code也不难,mylist<
。。就可以了(这里val是string, s只能是逗号,读到EOF就终止),写这个code最笨的
人都不用30分钟吧?
这里论坛这么多问题,都跟上面提到的这个一样,稍花点心思就完全不是现在那个样子
了。但是。。。 |
|
x**********g 发帖数: 391 | 48 上了十大推荐,那就再多贴2张图吧。版主要多发包子,发大包子哈 ^O^
lz是个胆小怕死又不好学的主儿,所以虽然每每看到滑雪者们的飒爽英姿总是心生无限
羡慕和向往,但自己在Flumserberg和Taufers浅尝辄止2次后,遂从此作罢。
翻出几张和雪上运动有关的老照片,是和同事在Vals山上玩小雪橇和tube。虽然不是在
圣诞,但就算是应个white的景了,也借此缅怀lz难得的一段历险。
第一张sledge,大家从Vals山顶鱼贯而下,因为人太多,路上还有车,另一边又是悬崖,
半路上发现少了个人,以为掉下山了,后来发现是回去找丢的相机套了。
第二张是坐在那种像donut一样的tube里滑下来,这是lz劫后余生躺在滑道那慨叹。因为
lz的tube在图上该往左拐的地方偏离轨道,直接飞到正前方的树林里去了,据同事说和一
棵树擦肩而过。难怪lz再睁开眼帽子也掉了,头发也散了。lz拖着tube要完成未竟的事业,
结果在滑道尽头又悲剧的连tube带人飞上了天, 重重的摔下来。
即使如此,还是强烈推荐在Vals山顶过个夜,可以看到真真“满天”的星星,密不透缝的,
一辈子难以忘记的景象。不过估计在其他... 阅读全帖 |
|