Skip to content

Commit b7781c8

Browse files
committed
prettier format
1 parent c57a0d5 commit b7781c8

File tree

1 file changed

+70
-56
lines changed

1 file changed

+70
-56
lines changed

src/examples/source-3-non-det/queens.js

Lines changed: 70 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,36 @@
1717
/* Pretty prints a solution to the n-queens puzzle */
1818
function pretty_print(result, board_size) {
1919
function member_eq(v, xs) {
20-
return is_null(xs) ? null : equal(v, head(xs)) ? xs : member_eq(v, tail(xs));
20+
return is_null(xs)
21+
? null
22+
: equal(v, head(xs))
23+
? xs
24+
: member_eq(v, tail(xs));
2125
}
2226
const possible_positions = enum_list(1, board_size);
2327

24-
let col_index_str = ' ';
25-
for_each(i => { col_index_str = col_index_str + stringify(i) + ' '; }, possible_positions);
28+
let col_index_str = " ";
29+
for_each(i => {
30+
col_index_str = col_index_str + stringify(i) + " ";
31+
}, possible_positions);
2632
display(col_index_str);
2733

2834
for_each(row => {
29-
let row_str = stringify(row) + ' ';
35+
let row_str = stringify(row) + " ";
3036
for_each(col => {
3137
const position = pair(row, col);
3238
const contains_position = member_eq(position, result) !== null;
3339
if (contains_position) {
34-
row_str = row_str + 'Q ';
40+
row_str = row_str + "Q ";
3541
} else {
36-
row_str = row_str + '. ';
42+
row_str = row_str + ". ";
3743
}
38-
},
39-
possible_positions);
44+
}, possible_positions);
4045

4146
display(row_str);
42-
},
43-
possible_positions);
47+
}, possible_positions);
4448
}
4549

46-
4750
const N = 8; // the number of queens and the size of the board
4851
const empty_positions = null;
4952

@@ -60,19 +63,23 @@ function queens_slow(board_size, num_queens) {
6063
require(num_queens <= board_size);
6164
const possible_positions = enum_list(1, board_size);
6265

63-
const result = accumulate((_, so_far) => {
64-
const row = an_element_of(possible_positions);
65-
require(is_row_safe(row, so_far));
66+
const result = accumulate(
67+
(_, so_far) => {
68+
const row = an_element_of(possible_positions);
69+
require(is_row_safe(row, so_far));
6670

67-
const col = an_element_of(possible_positions);
68-
require(is_col_safe(col, so_far));
71+
const col = an_element_of(possible_positions);
72+
require(is_col_safe(col, so_far));
6973

70-
const new_position = pair(row, col);
71-
require(is_diagonal_safe(new_position, so_far));
74+
const new_position = pair(row, col);
75+
require(is_diagonal_safe(new_position, so_far));
7276

73-
const new_positions = pair(new_position, so_far);
74-
return new_positions;
75-
}, empty_positions, enum_list(1, num_queens));
77+
const new_positions = pair(new_position, so_far);
78+
return new_positions;
79+
},
80+
empty_positions,
81+
enum_list(1, num_queens)
82+
);
7683

7784
return result;
7885
}
@@ -90,15 +97,20 @@ function is_col_safe(new_col, queen_positions) {
9097
function is_diagonal_safe(new_position, queen_positions) {
9198
const new_sum = head(new_position) + tail(new_position);
9299
const new_sub = head(new_position) - tail(new_position);
93-
const sums = map(position => head(position) + tail(position), queen_positions);
94-
95-
return member(new_sum, sums) === null &&
96-
member(new_sub, map(
97-
position => head(position) - tail(position), queen_positions
98-
)) === null;
100+
const sums = map(
101+
position => head(position) + tail(position),
102+
queen_positions
103+
);
104+
105+
return (
106+
member(new_sum, sums) === null &&
107+
member(
108+
new_sub,
109+
map(position => head(position) - tail(position), queen_positions)
110+
) === null
111+
);
99112
}
100113

101-
102114
/******************************************************************************/
103115
/* Fast version which uses non-determinism only for the rows, */
104116
/* with the columns being hardcoded. */
@@ -109,41 +121,43 @@ function is_diagonal_safe(new_position, queen_positions) {
109121
// generate more solutions by entering 'try again' in the REPL
110122

111123
function queens_fast(board_size, num_queens) {
112-
require(num_queens <= board_size);
113-
const possible_positions = enum_list(1, board_size);
114-
115-
function queen_cols(k) {
116-
if (k === 0) {
117-
return empty_positions;
118-
} else {
119-
const so_far = queen_cols(k - 1);
120-
121-
const new_row = an_element_of(possible_positions);
122-
const new_position = pair(new_row, k);
123-
require(is_safe(new_position, so_far));
124-
125-
const new_positions = pair(new_position, so_far);
126-
return new_positions;
127-
}
128-
}
129-
return queen_cols(num_queens);
124+
require(num_queens <= board_size);
125+
const possible_positions = enum_list(1, board_size);
126+
127+
function queen_cols(k) {
128+
if (k === 0) {
129+
return empty_positions;
130+
} else {
131+
const so_far = queen_cols(k - 1);
132+
133+
const new_row = an_element_of(possible_positions);
134+
const new_position = pair(new_row, k);
135+
require(is_safe(new_position, so_far));
136+
137+
const new_positions = pair(new_position, so_far);
138+
return new_positions;
139+
}
140+
}
141+
return queen_cols(num_queens);
130142
}
131143

132144
function is_safe(new_position, positions) {
133-
const new_row = head(new_position);
134-
const new_col = tail(new_position);
145+
const new_row = head(new_position);
146+
const new_col = tail(new_position);
135147

136-
return accumulate((position, so_far) => {
148+
return accumulate(
149+
(position, so_far) => {
137150
const row = head(position);
138151
const col = tail(position);
139152

140-
return so_far &&
141-
new_row - new_col !==
142-
row - col &&
143-
new_row + new_col !==
144-
row + col &&
145-
new_row !== row;
153+
return (
154+
so_far &&
155+
new_row - new_col !== row - col &&
156+
new_row + new_col !== row + col &&
157+
new_row !== row
158+
);
146159
},
147160
true,
148-
positions);
161+
positions
162+
);
149163
}

0 commit comments

Comments
 (0)