- The snippets are under the CC-BY-SA license.
- Please consider keeping a bookmark
- (instead of printing)
| Smalltalk | |||
|---|---|---|---|
| 1 |
Creates a new class SudokuSolver that inherits from Object. It has one instance variable: board, which holds the 9×9 Sudoku grid.
|
|
|
| 2 |
This method sets the internal board to the given 2D array aBoard.
|
||
| 3 |
Returns the value at a specific cell. Smalltalk arrays are 1-indexed, so we add 1 to both row and col.
|
||
| 4 |
Creates a copy of the board. Sets the value at the specified cell. Returns the new board (does not mutate the original).
|
||
| 5 |
Checks if num is already present in the specified row
|
|
|
| 6 |
Iterates over all rows in the column. Returns true if num is found.
|
||
| 7 |
Calculates the top-left corner of the 3×3 box. Iterates through all 9 cells in the box. Returns true if num is found.
|
|
|
| 8 |
Combines the three checks. Returns true if num is not in the row, column, or box.
|
|
|
| 9 |
Scans the board linearly (0 to 80). Converts each index to (row, col) using integer division and modulo.Returns the first cell with value 0 (empty), or nil if none found.
|
|
|
| 10 |
Finds the next empty cell. If none found, the board is solved — return it. Otherwise, try numbers 1–9: If valid, set the cell and recurse. If recursion succeeds, return the result. If all numbers fail, return nil to backtrack.
|
Alternative implementation:
|
|
| 11 |
The list x must be non-empty.
|
|
|
| 12 |
Check if the list contains the value x.
list is an iterable finite container. |
|
|
| 13 |
Access each key k with its value x from an associative array mymap, and print them.
|
|
|
| 14 |
Pick a random number greater than or equals to a, strictly inferior to b. Precondition : a < b.
|
|
|
| 15 |
Pick a random integer greater than or equals to a, inferior or equals to b. Precondition : a < b.
|
|
|
| 19 |
Reverse the order of the elements of the list x.
This may reverse "in-place" and destroy the original ordering. |
|
|
| 21 |
Swap the values of the variables a and b
|
||
| 22 |
Extract the integer value i from its string representation s (in radix 10)
|
|
|
| 26 |
Declare and initialize a matrix x having m rows and n columns, containing real numbers.
|
||
| 28 |
Sort the elements of the list (or array-like collection) items in ascending order of x.p, where p is a field of the type Item of the objects in items.
|
||
| 29 |
Remove i-th item from list items.
This will alter the original list or return a new list, depending on which is more idiomatic. Note that in most languages, the smallest valid value for i is 0. |
||
| 31 |
Create the recursive function f which returns the factorial of the non-negative integer i, calculated from f(i-1)
|
||
| 32 |
Create function exp which calculates (fast) the value x power n.
x and n are non-negative integers. |
||
| 38 |
Find substring t consisting in characters i (included) to j (excluded) of string s.
Character indices start at 0 unless specified otherwise. Make sure that multibyte characters are properly handled. |
||
| 39 |
Set the boolean ok to true if the string word is contained in string s as a substring, or to false otherwise.
|
||
| 41 |
Create the string t containing the same characters as the string s, in reverse order.
The original string s must remain unaltered. Each character must be handled correctly regardless its number of bytes in memory. |
|
|
| 43 |
Look for a negative value v in 2D integer matrix m. Print it and stop searching.
|
||
| 45 |
Sleep for 5 seconds in current thread, before proceeding with the next instructions.
|
||
| 46 |
Create the string t consisting of the 5 first characters of the string s.
Make sure that multibyte characters are properly handled. |
||
| 47 |
Create string t consisting in the 5 last characters of string s.
Make sure that multibyte characters are properly handled. |
||
| 48 |
Assign to variable s a string literal consisting in several lines of text, including newlines.
|
||
| 49 |
Build list chunks consisting in substrings of the string s, separated by one or more space characters.
|
||
| 50 |
Write a loop that has no end clause.
|
||
| 51 |
Determine whether the map m contains an entry for the key k
|
||
| 52 |
Determine whether the map m contains an entry with the value v, for some key.
|
||
| 53 |
Concatenate elements of string list x joined by the separator ", " to create a single string y.
|
||
| 54 |
Calculate the sum s of the integer list or array x.
|
||
| 55 |
Create the string representation s (in radix 10) of the integer value i.
|
|
|
| 57 |
Create the list y containing the items from the list x that satisfy the predicate p. Respect the original ordering. Don't modify x in-place.
|
|
|
| 58 |
Create the string lines from the content of the file with filename f.
|
||
| 59 |
Print the message "x is negative" to standard error (stderr), with integer x value substitution (e.g. "-2 is negative").
|
||
| 66 |
Calculate the result z of x power n, where x is a big integer and n is a positive integer.
|
||
| 71 |
Basic implementation of the Echo program: Print all arguments except the program name, separated by space, followed by newline.
The idiom demonstrates how to skip the first argument if necessary, concatenate arguments as strings, append newline and print it to stdout. |
||
| 78 |
Execute a block once, then execute it again as long as boolean condition c is true.
|
||
| 96 |
Set the boolean b to true if string s starts with prefix prefix, false otherwise.
|
||
| 99 |
Assign to the string x the value of the fields (year, month, day) of the date d, in format YYYY-MM-DD.
|
||
| 100 |
Sort elements of array-like collection items, using a comparator c.
|
||
| 110 |
Set the boolean blank to true if the string s is empty, or null, or contains only whitespace ; false otherwise.
|
||
| 117 |
Set n to the number of elements of the list x.
|
||
| 118 |
Create the set y from the list x.
x may contain duplicates. y is unordered and has no repeated values. |
||
| 119 |
Remove duplicates from the list x.
Explain if the original order is preserved. |
||
| 131 |
Execute f1 if condition c1 is true, or else f2 if condition c2 is true, or else f3 if condition c3 is true.
Don't evaluate a condition when a previous condition was true. |
||
| 134 |
Declare and initialize a new list items, containing 3 elements a, b, c.
|
||
| 136 |
Remove all occurrences of the value x from list items.
This will alter the original list or return a new list, depending on which is more idiomatic. |
||
| 137 |
Set the boolean b to true if the string s contains only characters in the range '0'..'9', false otherwise.
|
||
| 143 |
Iterate alternatively over the elements of the lists items1 and items2. For each iteration, print the element.
Explain what happens if items1 and items2 have different size. |
||
| 147 |
Create string t from string s, keeping only ASCII characters
|
||
| 153 |
Create the string t as the concatenation of the string s and the integer i.
|
||
| 157 |
Initialize a constant planet with string value "Earth".
|
||
| 158 |
Create a new list y from randomly picking exactly k elements from list x.
It is assumed that x has at least k elements. Each element must have same probability to be picked. Each element from x must be picked at most once. Explain if the original ordering is preserved or not. |
||
| 163 |
Print all the list elements, two by two, assuming list length is even.
|
||
| 165 |
Assign to the variable x the last element of the list items.
|
|
|
| 166 |
Create the list ab containing all the elements of the list a, followed by all the elements of the list b.
|
||
| 169 |
Assign to the integer n the number of characters of the string s.
Make sure that multibyte characters are properly handled. n can be different from the number of bytes of s. |
||
| 170 |
Set n to the number of elements stored in mymap.
This is not always equal to the map capacity. |
||
| 172 |
Insert value v for key k in map m.
|
||
| 179 |
Return the center c of the rectangle with coördinates(x1,y1,x2,y2)
|
||
| 184 |
Assign to t a string representing the day, month and year of the day after the current date.
|
||
| 185 |
Schedule the execution of f(42) in 30 seconds.
|
||
| 189 |
Produce a new list y containing the result of the function T applied to all elements e of the list x that match the predicate P.
|
||
| 201 |
Calculate n, the Euclidean norm of data, where data is a list of floating point values.
|
||
| 205 |
Read an environment variable with the name "FOO" and assign it to the string variable foo. If it does not exist or if the system does not support environment variables, assign a value of "none".
|
||
| 256 |
Print the numbers 5, 4, ..., 0 (included), one line per number.
|
||
| 272 |
Fizz buzz is a children's counting game, and a trivial programming task used to affirm that a programmer knows the basics of a language: loops, conditions and I/O.
The typical fizz buzz game is to count from 1 to 100, saying each number in turn. When the number is divisible by 3, instead say "Fizz". When the number is divisible by 5, instead say "Buzz". When the number is divisible by both 3 and 5, say "FizzBuzz" |
||
| 306 |
Preallocate memory in the list x for a minimum total capacity of 200 elements.
This is not possible in all languages. It is only meant as a performance optimization, should not change the length of x, and should not have any effect on correctness. |
FYI; In classic Smalltalk, message cr alone does not output line breaks (it requires followed by an endEntry message i.e. Transcirpt cr ; entEntry.), so there was a convention to output a line break firstly then output the text by using show: method in which includes the endEntry process. Hence the cr message is sending firstly in the idiom.