@@ -123,8 +123,8 @@ let rangeBy start finish ~step =
123
123
let arr = makeUninitializedUnsafe nb in
124
124
let cur = ref start in
125
125
for i = 0 to nb - 1 do
126
- setUnsafe arr i ! cur;
127
- cur .contents< - ! cur + step ;
126
+ setUnsafe arr i cur.contents ;
127
+ cur.contents< - cur.contents + step ;
128
128
done ;
129
129
arr
130
130
@@ -164,15 +164,15 @@ let concatMany arrs =
164
164
let lenArrs = length arrs in
165
165
let totalLen = ref 0 in
166
166
for i = 0 to lenArrs - 1 do
167
- totalLen .contents< - ! totalLen + length (getUnsafe arrs i)
167
+ totalLen .contents< - totalLen.contents + length (getUnsafe arrs i)
168
168
done ;
169
- let result = makeUninitializedUnsafe ! totalLen in
170
- totalLen .contents< - 0 ;
169
+ let result = makeUninitializedUnsafe totalLen.contents in
170
+ totalLen.contents< - 0 ;
171
171
for j = 0 to lenArrs - 1 do
172
172
let cur = getUnsafe arrs j in
173
173
for k = 0 to length cur - 1 do
174
- setUnsafe result ! totalLen (getUnsafe cur k);
175
- incr totalLen
174
+ setUnsafe result totalLen.contents (getUnsafe cur k);
175
+ totalLen.contents < - totalLen.contents + 1
176
176
done
177
177
done ;
178
178
result
@@ -269,31 +269,31 @@ let getByU a p =
269
269
let l = length a in
270
270
let i = ref 0 in
271
271
let r = ref None in
272
- while ! r = None && ! i < l do
273
- let v = ( getUnsafe a ! i) in
272
+ while r.contents = None && i.contents < l do
273
+ let v = getUnsafe a i.contents in
274
274
if p v [@ bs] then
275
275
begin
276
- r .contents< - Some v;
276
+ r.contents< - Some v;
277
277
end ;
278
- incr i
278
+ i.contents < - i.contents + 1
279
279
done ;
280
- ! r
280
+ r.contents
281
281
282
282
let getBy a p = getByU a (fun[@ bs] a -> p a)
283
283
284
284
let getIndexByU a p =
285
285
let l = length a in
286
286
let i = ref 0 in
287
287
let r = ref None in
288
- while ! r = None && ! i < l do
289
- let v = ( getUnsafe a ! i) in
288
+ while r.contents = None && i.contents < l do
289
+ let v = getUnsafe a i.contents in
290
290
if p v [@ bs] then
291
291
begin
292
- r .contents< - Some ! i ;
292
+ r .contents< - Some i.contents ;
293
293
end ;
294
- incr i
294
+ i.contents < - i.contents + 1
295
295
done ;
296
- ! r
296
+ r.contents
297
297
298
298
let getIndexBy a p = getIndexByU a (fun[@ bs] a -> p a)
299
299
@@ -305,11 +305,11 @@ let keepU a f =
305
305
let v = (getUnsafe a i) in
306
306
if f v [@ bs] then
307
307
begin
308
- setUnsafe r ! j v;
309
- incr j
308
+ setUnsafe r j.contents v;
309
+ j.contents < - j.contents + 1
310
310
end
311
311
done ;
312
- truncateToLengthUnsafe r ! j ;
312
+ truncateToLengthUnsafe r j.contents ;
313
313
r
314
314
315
315
let keep a f = keepU a (fun [@bs ] a -> f a)
@@ -322,11 +322,11 @@ let keepWithIndexU a f =
322
322
let v = (getUnsafe a i) in
323
323
if f v i [@ bs] then
324
324
begin
325
- setUnsafe r ! j v;
326
- incr j
325
+ setUnsafe r j.contents v;
326
+ j.contents < - j.contents + 1
327
327
end
328
328
done ;
329
- truncateToLengthUnsafe r ! j ;
329
+ truncateToLengthUnsafe r j.contents ;
330
330
r
331
331
332
332
let keepWithIndex a f = keepWithIndexU a (fun [@bs ] a i -> f a i)
@@ -341,11 +341,11 @@ let keepMapU a f =
341
341
| None -> ()
342
342
| Some v ->
343
343
begin
344
- setUnsafe r ! j v;
345
- incr j
344
+ setUnsafe r j.contents v;
345
+ j.contents < - j.contents + 1
346
346
end
347
347
done ;
348
- truncateToLengthUnsafe r ! j ;
348
+ truncateToLengthUnsafe r j.contents ;
349
349
r
350
350
351
351
let keepMap a f = keepMapU a (fun[@ bs] a -> f a)
@@ -368,38 +368,38 @@ let mapWithIndex a f = mapWithIndexU a (fun[@bs] a b -> f a b)
368
368
let reduceU a x f =
369
369
let r = ref x in
370
370
for i = 0 to length a - 1 do
371
- r .contents< - f ! r (getUnsafe a i) [@ bs]
371
+ r .contents< - f r.contents (getUnsafe a i) [@ bs]
372
372
done ;
373
- ! r
373
+ r.contents
374
374
375
375
let reduce a x f = reduceU a x (fun[@ bs] a b -> f a b)
376
376
377
377
let reduceReverseU a x f =
378
378
let r = ref x in
379
379
for i = length a - 1 downto 0 do
380
- r .contents< - f ! r (getUnsafe a i) [@ bs]
380
+ r .contents< - f r.contents (getUnsafe a i) [@ bs]
381
381
done ;
382
- ! r
382
+ r.contents
383
383
384
384
let reduceReverse a x f = reduceReverseU a x (fun[@ bs] a b -> f a b)
385
385
386
386
let reduceReverse2U a b x f =
387
387
let r = ref x in
388
388
let len = Pervasives. min (length a) (length b) in
389
389
for i = len - 1 downto 0 do
390
- r .contents< - f ! r (getUnsafe a i) (getUnsafe b i) [@ bs]
390
+ r .contents< - f r.contents (getUnsafe a i) (getUnsafe b i) [@ bs]
391
391
done ;
392
- ! r
392
+ r.contents
393
393
394
394
let reduceReverse2 a b x f =
395
395
reduceReverse2U a b x (fun [@bs ] a b c -> f a b c)
396
396
397
397
let reduceWithIndexU a x f =
398
398
let r = ref x in
399
399
for i = 0 to length a - 1 do
400
- r .contents< - f ! r (getUnsafe a i) i [@ bs]
400
+ r .contents< - f r.contents (getUnsafe a i) i [@ bs]
401
401
done ;
402
- ! r
402
+ r.contents
403
403
404
404
let reduceWithIndex a x f =
405
405
reduceWithIndexU a x (fun[@ bs] a b c -> f a b c)
@@ -485,16 +485,16 @@ let partitionU a f =
485
485
for ii = 0 to l - 1 do
486
486
let v = getUnsafe a ii in
487
487
if f v [@ bs] then (
488
- setUnsafe a1 ! i v;
489
- incr i
488
+ setUnsafe a1 i.contents v;
489
+ i.contents < - i.contents + 1
490
490
)
491
491
else (
492
- setUnsafe a2 ! j v;
493
- incr j
492
+ setUnsafe a2 j.contents v;
493
+ j.contents < - j.contents + 1
494
494
)
495
495
done ;
496
- truncateToLengthUnsafe a1 ! i ;
497
- truncateToLengthUnsafe a2 ! j ;
496
+ truncateToLengthUnsafe a1 i.contents ;
497
+ truncateToLengthUnsafe a2 j.contents ;
498
498
(a1, a2)
499
499
500
500
let partition a f = partitionU a (fun [@bs ] x -> f x)
0 commit comments