@@ -46,26 +46,26 @@ fn join(t: joinable_task) {
46
46
t. recv ( )
47
47
}
48
48
49
- fn map ( & & filename: [ u8 ] , emit : map_reduce:: putter < [ u8 ] , int > ) {
50
- let f = alt io:: file_reader ( str :: from_bytes ( filename) ) {
49
+ fn map ( & & filename: str , emit : map_reduce:: putter < str , int > ) {
50
+ let f = alt io:: file_reader ( filename) {
51
51
result:: ok ( f) { f }
52
52
result:: err ( e) { fail #fmt( "%?" , e) }
53
53
} ;
54
54
55
55
loop {
56
56
alt read_word ( f) {
57
- some ( w) { emit ( str :: bytes ( w ) , 1 ) ; }
57
+ some ( w) { emit ( w , 1 ) ; }
58
58
none { break; }
59
59
}
60
60
}
61
61
}
62
62
63
- fn reduce ( & & word: [ u8 ] , get : map_reduce:: getter < int > ) {
63
+ fn reduce ( & & word: str , get : map_reduce:: getter < int > ) {
64
64
let mut count = 0 ;
65
65
66
66
loop { alt get ( ) { some ( _) { count += 1 ; } none { break; } } }
67
67
68
- io:: println ( #fmt ( "%? \t %?" , word, count) ) ;
68
+ io:: println ( #fmt ( "%s \t %?" , word, count) ) ;
69
69
}
70
70
71
71
mod map_reduce {
@@ -243,14 +243,9 @@ fn main(argv: [str]) {
243
243
ret;
244
244
}
245
245
246
- let mut iargs = [ ] ;
247
- vec:: iter_between ( argv, 1 u, vec:: len ( argv) ) { |a|
248
- iargs += [ str:: bytes ( a) ] ;
249
- }
250
-
251
246
let start = time:: precise_time_ns ( ) ;
252
247
253
- map_reduce:: map_reduce ( map, reduce, iargs ) ;
248
+ map_reduce:: map_reduce ( map, reduce, vec :: slice ( argv , 1 u , argv . len ( ) ) ) ;
254
249
let stop = time:: precise_time_ns ( ) ;
255
250
256
251
let elapsed = ( stop - start) / 1000000u64 ;
@@ -271,87 +266,5 @@ fn read_word(r: io::reader) -> option<str> {
271
266
}
272
267
ret none;
273
268
}
274
-
275
- fn is_digit ( c : char ) -> bool {
276
- alt c {
277
- '0' { true }
278
- '1' { true }
279
- '2' { true }
280
- '3' { true }
281
- '4' { true }
282
- '5' { true }
283
- '6' { true }
284
- '7' { true }
285
- '8' { true }
286
- '9' { true }
287
- _ { false }
288
- }
289
- }
290
-
291
- fn is_alpha_lower ( c : char ) -> bool {
292
- alt c {
293
- 'a' { true }
294
- 'b' { true }
295
- 'c' { true }
296
- 'd' { true }
297
- 'e' { true }
298
- 'f' { true }
299
- 'g' { true }
300
- 'h' { true }
301
- 'i' { true }
302
- 'j' { true }
303
- 'k' { true }
304
- 'l' { true }
305
- 'm' { true }
306
- 'n' { true }
307
- 'o' { true }
308
- 'p' { true }
309
- 'q' { true }
310
- 'r' { true }
311
- 's' { true }
312
- 't' { true }
313
- 'u' { true }
314
- 'v' { true }
315
- 'w' { true }
316
- 'x' { true }
317
- 'y' { true }
318
- 'z' { true }
319
- _ { false }
320
- }
321
- }
322
-
323
- fn is_alpha_upper ( c : char ) -> bool {
324
- alt c {
325
- 'A' { true }
326
- 'B' { true }
327
- 'C' { true }
328
- 'D' { true }
329
- 'E' { true }
330
- 'F' { true }
331
- 'G' { true }
332
- 'H' { true }
333
- 'I' { true }
334
- 'J' { true }
335
- 'K' { true }
336
- 'L' { true }
337
- 'M' { true }
338
- 'N' { true }
339
- 'O' { true }
340
- 'P' { true }
341
- 'Q' { true }
342
- 'R' { true }
343
- 'S' { true }
344
- 'T' { true }
345
- 'U' { true }
346
- 'V' { true }
347
- 'W' { true }
348
- 'X' { true }
349
- 'Y' { true }
350
- 'Z' { true }
351
- _ { false }
352
- }
353
- }
354
-
355
- fn is_alpha ( c : char ) -> bool { is_alpha_upper ( c) || is_alpha_lower ( c) }
356
-
357
- fn is_word_char ( c : char ) -> bool { is_alpha ( c) || is_digit ( c) || c == '_' }
269
+ fn is_word_char ( c : char ) -> bool {
270
+ char:: is_alphabetic ( c) || char:: is_digit ( c) || c == '_' }
0 commit comments