]> gitweb.factorcode.org Git - factor.git/blob - extra/project-euler/project-euler.factor
Missed yet more renames
[factor.git] / extra / project-euler / project-euler.factor
1 ! Copyright (c) 2007-2010 Aaron Schaefer, Samuel Tardieu.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: definitions io io.files io.pathnames kernel math math.parser
4     prettyprint project-euler.ave-time sequences vocabs vocabs.loader
5     project-euler.001 project-euler.002 project-euler.003 project-euler.004
6     project-euler.005 project-euler.006 project-euler.007 project-euler.008
7     project-euler.009 project-euler.010 project-euler.011 project-euler.012
8     project-euler.013 project-euler.014 project-euler.015 project-euler.016
9     project-euler.017 project-euler.018 project-euler.019 project-euler.020
10     project-euler.021 project-euler.022 project-euler.023 project-euler.024
11     project-euler.025 project-euler.026 project-euler.027 project-euler.028
12     project-euler.029 project-euler.030 project-euler.031 project-euler.032
13     project-euler.033 project-euler.034 project-euler.035 project-euler.036
14     project-euler.037 project-euler.038 project-euler.039 project-euler.040
15     project-euler.041 project-euler.042 project-euler.043 project-euler.044
16     project-euler.045 project-euler.046 project-euler.047 project-euler.048
17     project-euler.049 project-euler.050 project-euler.051 project-euler.052
18     project-euler.053 project-euler.054 project-euler.055 project-euler.056
19     project-euler.057 project-euler.058 project-euler.059 project-euler.062
20     project-euler.063 project-euler.065 project-euler.067 project-euler.069
21     project-euler.070 project-euler.071 project-euler.072 project-euler.073
22     project-euler.074 project-euler.075 project-euler.076 project-euler.079
23     project-euler.081 project-euler.085 project-euler.089 project-euler.092
24     project-euler.097 project-euler.099 project-euler.100 project-euler.102
25     project-euler.112 project-euler.116 project-euler.117 project-euler.124
26     project-euler.134 project-euler.148 project-euler.150 project-euler.151
27     project-euler.164 project-euler.169 project-euler.173 project-euler.175
28     project-euler.186 project-euler.188 project-euler.190 project-euler.203
29     project-euler.206 project-euler.215 project-euler.255 project-euler.265 ;
30 IN: project-euler
31
32 <PRIVATE
33
34 : problem-prompt ( -- n )
35     "Which problem number from Project Euler would you like to solve?"
36     print readln string>number ;
37
38 : number>euler ( n -- str )
39     number>string 3 CHAR: 0 pad-head ;
40
41 : solution-path ( n -- str/f )
42     number>euler "project-euler." prepend
43     lookup-vocab where dup [ first <pathname> ] when ;
44
45 PRIVATE>
46
47 : problem-solved? ( n -- ? )
48     solution-path ;
49
50 : run-project-euler ( -- )
51     problem-prompt dup problem-solved? [
52         "Answer: " write
53         dup number>euler "project-euler." prepend run
54         "Source: " write solution-path .
55     ] [
56         drop "That problem has not been solved yet..." print
57     ] if ;
58
59 MAIN: run-project-euler