Как к fopen () на iPhone?

Вы очень близки, вы должны просто использовать форму let вместо def здесь:

(defn create-contest
  "Creates a monty hall doors contest"
  [n]
  (let [door-with-car (rand-int n)] ;; let instead of def
    (map
      (fn [i] (if (= i door-with-car) :car :closed))
      (range n))))

def свяжет некоторое значение с переменной в текущем пространстве имен, но Вы хотите связать значение в области действия этой функции, и для этого хорошо let. См. этот Q & A для другого объяснения.

(defn create-doors
  "Create a collection of monty hall contests"
  [doors contests]
  (map
    create-contest ;; no need to wrap create-contest in another function here
    (repeat contests doors)))

Вам не нужно заключать create-contest в другую функцию для использования с map - вы можете просто передать функцию непосредственно в map в качестве значения. doall необходим только для принудительной реализации отложенной последовательности из map, поэтому вам, вероятно, не нужно / не нужно этого внутри create-doors.

(create-doors 4 10)
=>
((:closed :closed :car :closed)
 (:closed :closed :closed :car)
 (:closed :car :closed :closed)
 (:closed :closed :closed :car)
 (:closed :car :closed :closed)
 (:closed :car :closed :closed)
 (:closed :car :closed :closed)
 (:closed :closed :closed :car)
 (:closed :closed :car :closed)
 (:closed :closed :car :closed))

16
задан Nick Van Brunt 25 November 2008 в 18:11
поделиться

2 ответа

при попытке получить доступ к файлу в своем комплекте приложений, необходимо получить полный путь к нему: [[NSBundle mainBundle] pathForResource: FILENAME ofType: FILEEXTENSION]

Это возвращает NSString, из которого можно вытянуть UTF8String и передать fopen.

22
ответ дан 30 November 2019 в 16:01
поделиться

Только быть ясным открыть файл "some.txt"...

NSString * path = [[NSBundle mainBundle] pathForResource:  @"some" ofType: @"txt"];
FILE *f = fopen([path cStringUsingEncoding:1],"r");
if (f == NULL) NSLog([path stringByAppendingString:@" not found"]);
23
ответ дан 30 November 2019 в 16:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: